Hello Oh Holy stackoverflow!
我正在尝试使用角度权限为我的应用创建三个角色。用户,管理员和合作伙伴。我阅读了整个维基,这就是我想出的:
.run(function (PermPermissionStore, PermRoleStore) {
var userPermissionsArray = ['seeUserDashboard'];
var adminPermissionsArray = ['seeAdminDashboard'];
var partnerPermissionsArray = ['seePartnerDashboard'];
PermRoleStore
.defineManyRoles({
'USER' : userPermissionsArray,
'ADMIN' : adminPermissionsArray,
'PARTNER' : partnerPermissionsArray
});
PermPermissionStore
.defineManyPermissions(userPermissionsArray, function (permissionName) {
return _.contains(userPermissionsArray, permissionName);
});
PermPermissionStore
.defineManyPermissions(adminPermissionsArray, function (permissionName) {
return _.contains(userPermissionsArray, permissionName);
});
PermPermissionStore
.defineManyPermissions(partnerPermissionsArray, function (permissionName) {
return _.contains(userPermissionsArray, permissionName);
});
})
我的问题是这个。如何验证当前会话并为其分配特定角色?另外,我是否正确地为角色分配权限?我的想法是运行一个验证API调用,API将吐出客户端令牌解析的角色。我想做这样的事情但是defineManyRoles没有回复承诺!
PermRoleStore
.defineManyRoles({
'USER' : userPermissionsArray,
'ADMIN' : adminPermissionsArray,
'PARTNER' : partnerPermissionsArray
})
.then(function onSuccess() {
return $http.put('/api/validation/global')
.then(function onSuccess(res) {
return $q.resolve();
})
.catch(function onError(res) {
return $q.reject();
});
})
.catch(function onError(res) {
console.log(res);
});
答案 0 :(得分:0)
在我使用
删除项目的角度权限之前,我已经这样做了PermPermissionStore.defineManyPermissions($rootScope.authService.getPermissionGroups(), function (stateParams, permissionName) {
var deferred = $q.defer();
if(angular.isDefined($rootScope.authService.userId)) {
$rootScope.authService.userPromise
.then(function (data) {
if($rootScope.authService.hasPermission(permissionName)) {
deferred.resolve();
} else {
deferred.reject();
}
}).catch(function () {
deferred.reject();
});
} else {
deferred.reject();
}
return deferred.promise;
});