src/server/middlewares/isAuthorized.js   A
last analyzed

Complexity

Total Complexity 11
Complexity/F 11

Size

Lines of Code 49
Function Count 1

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

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

1 Function

Rating   Name   Duplication   Size   Complexity  
C isAuthorized.js ➔ middleware 0 42 11
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