对于基于角色的授权,您必须管理您的app.config
和app.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;
}
我需要做这个模块的动态,这样即使在运行时添加的角色,在代码中没有太大的变化应该需要做。如果我为每个角色使用=='角色',我将不得不对每个添加/删除的角色进行更改。你能提一下这方面的解决方案吗? – shreya