如何在express.js中限制角色(管理员和用户)之间的任务

时间:2014-12-30 09:31:31

标签: javascript angularjs mongodb express mongoose

在我的项目中,我有两个角色

他们是  管理员和  用户

而我的要求是,我必须限制用户的任务,例如管理员只能添加用户,但事件记录为我能够发布的用户。我必须克服这个问题,任何人都可以帮助我。我正在使用express.js,mongodb服务器端,客户端angular.js

这是我的代码

adduser功能:

exports.adduser = function(req, res) {
    delete req.body.roles;

    var user = new User(req.body);
    var message = null;
// Add missing user fields
    user.provider = 'local';
    user.displayName = user.firstName + ' ' + user.lastName;
    user.save(function(err) {
        if (err) {
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
       //send mail to user
agenda.now('New_User_Create_Notify', {data:user.username});
res.jsonp(user);



        }
    });
};

路线:::

app.route('/auth/adduser').post(users.adduser);

1 个答案:

答案 0 :(得分:0)

如果您已设置用户角色

你可以在adduser功能中执行此操作

if(req.body.roles.indexOf("admin") == -1){
return res.status(403).send({
                message:"user doesnt have required permision"
            });
}else{
   user.save(function(err) {
        if (err) {
            return res.status(400).send({
                message: errorHandler.getErrorMessage(err)
            });
        } else {
       //send mail to user
agenda.now('New_User_Create_Notify', {data:user.username});
res.jsonp(user);

  }

}