我有一个应用程序,其中有多个用户角色和权限。 根据当前登录的用户是否应该检查用户是否有权访问特定页面。 hasAccess值将存储在布尔值中,可以像
一样进行访问rootScope.globals.adminYes
如果adminYes为true,则只会向用户显示管理页面。
我需要检查adminYes
的值是true
然后呈现页面,否则如果adminYes
是false
则用户应该无法查看该页面应该出现一条弹出消息,说明用户没有足够的权限。
我该怎么做?
答案 0 :(得分:1)
您可以使用变量来检查用户是否可以查看该页面。假设我有管理员和用户。管理员可以查看用户无法查看页面的页面。
将值保存在服务中,然后根据用户决定是否可以显示页面。
对于simpilicity,我正在修改控制器中的hasAccess
值。实时我们需要从数据库中获取值并相应地显示页面。
<强>的script.js 强>
myApp.controller('Ctrl', function($scope, Service) {
// get from DB whether the user is admin or not.
// USer role details also we should get from the DB.
$scope.admin = function() {
Service.setAccess(true);
};
$scope.user = function() {
Service.setAccess(false);
alert('No Access');
};
$scope.hasAccess = function() {
return Service.getAccess();
};
});
myApp.service('Service', function() {
var hasAccess = true;
this.getAccess = function() {
return hasAccess;
};
this.setAccess = function(access) {
hasAccess = access;
};
});
<强> HTML:强>
<body ng-controller="Ctrl">
<button type="button" ng-click="admin()">Admin</button>
<button type="button" ng-click="user()">User</button>
<div>
<div ng-show="hasAccess()">
<div style="height: 100px; width: 100px; border: 2px solid black; background-color: green;">
</div>
</div>
</div>
</body>
工作Plunker。