diff --git a/src/middleware/middleware.js b/src/middleware/middleware.js index 079e02bf14..6943b2ca83 100644 --- a/src/middleware/middleware.js +++ b/src/middleware/middleware.js @@ -78,17 +78,17 @@ middleware.redirectToAccountIfLoggedIn = function(req, res, next) { middleware.redirectToLoginIfGuest = function(req, res, next) { if (!req.user || parseInt(req.user.uid, 10) === 0) { - req.session.returnTo = nconf.get('relative_path') + req.url.replace(/^\/api/, ''); - return controllers.helpers.redirect(res, '/login'); - } else { - next(); + return redirectToLogin(req, res); } + + next(); }; middleware.validateFiles = function(req, res, next) { if (!Array.isArray(req.files.files) || !req.files.files.length) { return next(new Error(['[[error:invalid-files]]'])); } + next(); }; @@ -146,8 +146,7 @@ middleware.checkAccountPermissions = function(req, res, next) { middleware.isAdmin = function(req, res, next) { if (!req.user) { - req.session.returnTo = nconf.get('relative_path') + req.url.replace(/^\/api/, ''); - return controllers.helpers.redirect(res, '/login'); + return redirectToLogin(req, res); } user.isAdministrator((req.user && req.user.uid) ? req.user.uid : 0, function (err, isAdmin) { @@ -456,7 +455,9 @@ middleware.exposeGroupName = function(req, res, next) { if (!req.params.hasOwnProperty('slug')) { return next(); } groups.getGroupNameByGroupSlug(req.params.slug, function(err, groupName) { - if (err) { return next(err); } + if (err) { + return next(err); + } res.locals.groupName = groupName; next(); @@ -478,9 +479,14 @@ middleware.exposeUid = function(req, res, next) { } }; +function redirectToLogin(req, res) { + req.session.returnTo = nconf.get('relative_path') + req.url.replace(/^\/api/, ''); + return controllers.helpers.redirect(res, '/login'); +} + module.exports = function(webserver) { app = webserver; middleware.admin = require('./admin')(webserver); return middleware; -}; +}; \ No newline at end of file