All files / middlewares loginChecker.js

62.5% Statements 10/16
45.45% Branches 5/11
66.67% Functions 2/3
62.5% Lines 10/16

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30    15x 15x 1x 1x   1x 1x       1x                     1x 1x 1x        
// const debug = require('debug')('crowi:middlewares:loginChecker')
 
module.exports = (crowi, app) => {
  return function(req, res, next) {
    var User = crowi.model('User')
    var csrfKey = (req.session && req.session.id) || 'anon'
 
    Eif (req.csrfToken === null) {
      req.csrfToken = crowi.getTokens().create(csrfKey)
    }
 
    // session に user object が入ってる
    Iif (req.session.user && '_id' in req.session.user) {
      User.findById(req.session.user._id, '+password +apiToken', function(err, userData) {
        if (err) {
          next()
        } else {
          req.user = req.session.user = userData
          res.locals.user = req.user
          next()
        }
      })
    } else {
      req.user = req.session.user = false
      res.locals.user = req.user
      next()
    }
  }
}