Completed
Push — master ( 78d2f9...949122 )
by greg
42s
created

src/server/middlewares/isAuthorized.js   A

Complexity

Total Complexity 8
Complexity/F 8

Size

Lines of Code 49
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 0
wmc 8
nc 1
mnd 2
bc 9
fnc 1
dl 0
loc 49
rs 10
bpm 9
cpm 8
noi 0
c 1
b 0
f 0

1 Function

Rating   Name   Duplication   Size   Complexity  
C isAuthorized.js ➔ middleware 0 42 8
1
import {
2
  config,
3
  User
4
} from '../../cli'
5
6
var middleware = function(req, res, next) {
7
  if (!config.users.enable) {
8
    if (req.url.indexOf('/abe/users/login') > -1) {
9
      res.redirect('/abe/editor')
10
      return
11
    }else {
12
      next()
13
      return
14
    }
15
  }
16
17
  var decoded = User.utils.decodeUser(req, res)
18
  var user = User.utils.findSync(decoded.iss)
19
  res.user = user
20
21
  if(!User.utils.isAbeRestrictedUrl(req.url)) {
22
    // if (user != null && req.url.indexOf('/abe/users/login') > -1 && req.method === 'GET' ) {
23
    //   res.redirect('/abe/editor')
24
    //   return
25
    // }else {
26
      next()
27
      return
28
    // }
29
  }
30
31
  var isHtml = /text\/html/.test(req.get('accept')) ? true : false
32
33
  if (user != null && User.utils.isUserAllowedOnRoute(user.role.workflow, req.url)) {
34
    next()
35
  }else {
36
    if(isHtml) {
37
      res.redirect('/abe/users/login')
38
    }else {
39
      var notAuthorized = {
40
        success: 0,
41
        message: 'Not authorized !'
42
      }
43
      res.set('Content-Type', 'application/json')
44
      res.send(JSON.stringify(notAuthorized))
45
    }
46
  }
47
}
48
49
export default middleware