如何搜索此对象以查看用户是否有许可



给定我有:

var permissions = {
    'blog': {
    'article' : ['add_article', 'view_articles']
  },
  'gallery': {
    'images' : ['upload_image', 'view_other_user_images']
  }
}
var permissionsChecker = function(permissions) {
    this.permissions = permissions;
    this.hasPermissions = function (permissionsString) {
      // permissionsString is in this.permissions
      // return true
  }
}

如何在该对象内的数组中搜索以检查我有一定的权限吗?我希望通过提供类似的字符串来搜索:

'blog.article.add_article' or 'gallery.images.view_other_user_images'

我可能无法正确理解,但我认为这是您要寻找的:

var permissionsChecker = function(permissions) {
    this.permissions = permissions;
    this.hasPermissions = function (permissionsString) {
      var [section, subsection, permission] = permissionsString.split('.');
      if(this.permissions[section]){
        if(this.permissions[section][subsection]){
          return this.permissions[section][subsection].indexOf(permission) > -1;
        }
      }
      return false;
  }; 
}
var checker = new permissionsChecker(permissions);
checker.hasPermission('add_article');//true
checker.hasPermission('destroy_world');//false

最新更新