首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS | angular-permissions角色验证

AngularJS | angular-permissions角色验证
EN

Stack Overflow用户
提问于 2016-08-21 09:07:39
回答 1查看 673关注 0票数 1

你好,哦,我的天啊,堆栈溢出!

我正在尝试使用angular-permissions为我的应用程序创建三个角色。用户、管理员和合作伙伴。我阅读了整个维基,我得出的结论是:

代码语言:javascript
复制
.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没有返回一个承诺!

代码语言:javascript
复制
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);
});
EN

回答 1

Stack Overflow用户

发布于 2016-09-05 13:13:54

在我从我们的项目中删除angular许可之前,我这样做了。

代码语言:javascript
复制
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;
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39060021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档