ultimate
Version:
Dependency library for `ultimate-seed`.
28 lines (21 loc) • 502 B
JavaScript
/*
* ultimate.server.controller.ensureRole
*/
;
var _ = require('lodash');
exports = module.exports = function (roles) {
if (!_.isArray(roles)) { roles = []; }
return function (req, res, next) {
if (!req.isAuthenticated()) {
return res.redirect('/login');
}
roles.forEach(function (role) {
if (_.isString(role)) {
if (!req.user || !_.contains(req.user.roles, role)) {
return res.send(403);
}
}
});
next();
};
};