對於基於角色的授權,您必須管理您的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