【发布时间】:2015-06-06 05:29:41
【问题描述】:
我的项目中有多个资源和多个用户。单个用户可能在不同的 2 资源上具有不同的 2 角色。但是 node_acl 的问题是,如果我想从特定资源中删除用户的角色,则没有任何功能(方式)。
让我解释一下。
我有 2 个资源让调用,然后是“资源 A”和“资源 B”,并且在这两个资源上,用户“Bharat”都具有管理员角色。
允许资源
redisAcl.allow([{
roles: ['admin'],
allows: [{
resources: "resources A",
permissions: "Put"
}]
},{
roles: ['admin'],
allows: [{
resources: "resources B",
permissions: "get"
}]
}]);
添加用户角色
redisAcl.addUserRoles("Bharat", "Admin", function() {
})
它会将管理员角色设置为“Bharat:在两个资源上。好的,我会暂时管理这个。因为我有一个内置方法来检查任何资源的权限。
喜欢
redisAcl.isAllowed("Bharat", "resources A", "get", function(err, allowed) {
console.log("first",allowed); // result is false})
redisAcl.isAllowed("Bharat", "resources B", "get", function(err, allowed) {
console.log("first",allowed); // result is true. })
但如果我想撤销 "Bharat" 的管理员角色。如果我使用 removeUserRoles() 方法从 "resource B" 修改管理员角色。
redisAcl.removeUserRoles("Bharat", "admin", function() {
})
它还将从 “resource A” 中撤销 “Bharat” 的管理员角色。 有什么方法可以做到这一点,或者使用 node_acl 从特定资源中删除(“撤销”)用户角色。
我正在使用node_acl 模块来管理ACL。
【问题讨论】: