-1

我正在开发一个项目,需要使用多个角色​​。我需要在这些角色的每一个上使用不同的权限集。例如,角色管理员可以有权限 - >浏览量词条编辑PageCreate,而角色观众有permissions->浏览量只。Angular Js中的基于角色的授权

与每个用户相关的角色都存储在数据库中,我计划使用转换对象功能来确保哪个角色与哪个用户相关联。

我是新来的角,不能找出一种方法来定义一个角色,我可以, 1.链接多个权限, 2.将它与转换属性(动态函数)相关联。

回答

0

对于基于角色的授权,您必须管理您的app.configapp.run文件。简单地套用以下设置:

app.config文件:

$routeProvider.when('/', { 
     templateUrl: 'views/dashboard.html', 
     resolve: { 
      "currentAuth": [ "authService", function(authService) { 
       var auth = authService.auth(); 
       return auth; 
      }] 
     } 
    }); 


app.run([ authService, function(authService) { 

     if (role === "admin") { 
      // Use changeSuccess method on route to redirect. 
     } 

} ]); 

并在authService从数据库中获取的角色。在authservice添加方法:

function functionName(user){ 
if (user) { 
    if (!!~this.roles.indexOf('*')) { 
     return true; 
    } else { 
     for (var userRoleIndex in user.roles) { 
      for (var roleIndex in this.roles) { 
       if (this.roles[roleIndex] === user.roles[userRoleIndex]) { 
        return true; 
       } 
      } 
     } 
    } 
} else { 
    return this; 
} 
return false; 

}

+0

我需要做这个模块的动态,这样即使在运行时添加的角色,在代码中没有太大的变化应该需要做。如果我为每个角色使用=='角色',我将不得不对每个添加/删除的角色进行更改。你能提一下这方面的解决方案吗? – shreya