From 7617c670cb84cd1c9dcab9d73f6b84bb1c68a351 Mon Sep 17 00:00:00 2001 From: David Baldwynn Date: Thu, 20 Apr 2017 22:02:05 -0700 Subject: [PATCH] Update passport_helpers.js --- config/passport_helpers.js | 50 ++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/config/passport_helpers.js b/config/passport_helpers.js index 5ca856e1..a7786a5e 100644 --- a/config/passport_helpers.js +++ b/config/passport_helpers.js @@ -1,48 +1,44 @@ "use strict"; -var config = require("./config"); var passport = require("passport"); -var User = require('mongoose').model('User'); - module.exports.isAuthenticatedOrApiKey = function isAuthenticated(req, res, next) { if (req.isAuthenticated()) { return next(); - } else { - // Try authenticate with API KEY - if (req.headers.apikey || req.query.apikey || req.body.apikey) { - passport.authenticate("localapikey", function (err, user, info) { - if (err) - return res.sendStatus(500); + } + // Try authenticate with API KEY + if (req.headers.apikey || req.query.apikey || req.body.apikey) { + passport.authenticate("localapikey", function (err, user, info) { + if (err) + return res.sendStatus(500); - if (!user) - return res.status(401).send(info.message || ""); + if (!user) + return res.status(401).send(info.message || ""); - req.login(user, function(err) { - if (err) return res.sendStatus(500); + req.login(user, function(loginErr) { + if (loginErr) return res.sendStatus(500); - req.user = user; - return next(); - }); + req.user = user; + return next(); + }); - })(req, res, next); - } else { - return res.sendStatus(401); - } - } + })(req, res, next); + } + return res.sendStatus(401); }; module.exports.hasRole = function hasRole(roleRequired) { - if (!roleRequired) + if (!roleRequired) { throw new Error("Required role needs to be set"); - + } + return function(req, res, next) { return module.exports.isAuthenticated(req, res, function() { - if (req.user && req.user.roles && req.user.roles.indexOf(roleRequired) !== -1) - next(); - else - res.sendStatus(403); + if (req.user && req.user.roles && req.user.roles.indexOf(roleRequired) !== -1){ + return next(); + } + return res.sendStatus(403); }); }; };