你好,哦,我的天啊,堆栈溢出!
我正在尝试使用angular-permissions为我的应用程序创建三个角色。用户、管理员和合作伙伴。我阅读了整个维基,我得出的结论是:
.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);
});发布于 2016-09-05 13:13:54
在我从我们的项目中删除angular许可之前,我这样做了。
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;
});https://stackoverflow.com/questions/39060021
复制相似问题