如何在AngularJS中检查页面级别身份验证?

时间:2015-12-01 06:18:54

标签: angularjs

我有一个应用程序,其中有多个用户角色和权限。 根据当前登录的用户是否应该检查用户是否有权访问特定页面。 hasAccess值将存储在布尔值中,可以像

一样进行访问
rootScope.globals.adminYes

如果adminYes为true,则只会向用户显示管理页面。 我需要检查adminYes的值是true然后呈现页面,否则如果adminYesfalse则用户应该无法查看该页面应该出现一条弹出消息,说明用户没有足够的权限。

我该怎么做?

1 个答案:

答案 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