【问题标题】:AngularJS | angular-permissions role validationAngularJS |角度权限角色验证
【发布时间】:2016-08-21 01:07:38
【问题描述】:

你好哦神圣的stackoverflow!

我正在尝试使用 angular-permissions 为我的应用创建三个角色。用户、管理员和合作伙伴。我阅读了整个 wiki,这就是我想出的:

.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);
});

【问题讨论】:

    标签: angularjs permissions


    【解决方案1】:

    在我从我们的项目中删除角度许可之前,我已经这样做了

    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;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多