From 40834cc010982b952bbb865d0230447f9108da08 Mon Sep 17 00:00:00 2001 From: Julian Lam <julian@designcreateplay.com> Date: Fri, 3 Apr 2015 21:15:22 -0400 Subject: [PATCH] updated checkAccountPermissions to call requireUser, and added new hook for plugins to handle auth login --- src/middleware/middleware.js | 38 ++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index 88c6dbfbd1..ced0f40674 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -32,6 +32,12 @@ var app, middleware.authenticate = function(req, res, next) { if (req.user) { return next(); + } else if (plugins.hasListeners('action:middleware.authenticate')) { + return plugins.fireHook('action:middleware.authenticate', { + req: req, + res: res, + next: next + }); } controllers.helpers.notAllowed(req, res); @@ -124,29 +130,31 @@ middleware.checkGlobalPrivacySettings = function(req, res, next) { middleware.checkAccountPermissions = function(req, res, next) { // This middleware ensures that only the requested user and admins can pass - if (!req.uid) { - return controllers.helpers.notAllowed(req, res); - } - - user.getUidByUserslug(req.params.userslug, function (err, uid) { + middleware.authenticate(req, res, function(err) { if (err) { return next(err); } - if (!uid) { - return controllers.helpers.notFound(req, res); - } + user.getUidByUserslug(req.params.userslug, function (err, uid) { + if (err) { + return next(err); + } - if (parseInt(uid, 10) === req.uid) { - return next(); - } + if (!uid) { + return controllers.helpers.notFound(req, res); + } - user.isAdministrator(req.uid, function(err, isAdmin) { - if (err || isAdmin) { - return next(err); + if (parseInt(uid, 10) === req.uid) { + return next(); } - controllers.helpers.notAllowed(req, res); + user.isAdministrator(req.uid, function(err, isAdmin) { + if (err || isAdmin) { + return next(err); + } + + controllers.helpers.notAllowed(req, res); + }); }); }); };