Angular Js中基于角色的授权

时间:2017-07-05 09:19:44

标签: angularjs angular-ui-router role-based-access-control angular-permission

我正在开发一个需要多个角色的项目,我使用https://github.com/Narzerus/angular-permission。我需要对每个角色使用不同的权限集。例如,角色管理员可以拥有权限 - > PageView PageEdit PageCreate ,而角色 viewer 只有权限 - > PageView

与每个用户相关联的角色存储在数据库中,我打算使用过渡对象功能来确保与哪个用户相关联的角色。

我是棱角分明的新手,无法找到一种方法来定义角色,我可以, 1.用它链接多个权限, 2.将其与过渡属性(动态函数)相关联。

1 个答案:

答案 0 :(得分: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;

}