Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save fforres/16d67f7fcdcdb1f734f7 to your computer and use it in GitHub Desktop.
Save fforres/16d67f7fcdcdb1f734f7 to your computer and use it in GitHub Desktop.
'use strict';
/**
* Module dependencies.
*/
var _ = require('lodash'),
mongoose = require('mongoose'),
User = mongoose.model('User');
/**
* Require login and user role routing middleware
*/
exports.requiresUser = function(req, res, next) {
var role = ['user'];
if (!req.isAuthenticated()) {
return res.status(401).send({
message: 'User is not logged in'
});
}
if (!_.intersection(req.user.roles, role).length){
return res.status(404).send({
message: 'User does not have a '+ role[0] +' role'
});
}
next();
};
/**
* Require login and user role routing middleware
*/
exports.requiresAdmin = function(req, res, next) {
var role = ['admin'];
if (!req.isAuthenticated()) {
return res.status(401).send({
message: 'User is not logged in'
});
}
if (!_.intersection(req.user.roles, role).length){
return res.status(401).send({
message: 'User does not have a '+ role[0] +' role',
redirectTo: '/'
});
}
next();
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment