相关疑难解决方法(0)

如何设计基于分层角色的访问控制系统

基本的交易是,我们为我们的项目定制了"kickstart".为此我们正在考虑重做用户控件.我知道有很多关于一般rbac的问题,但我在层次结构rbac上找不到任何问题?

我们的要求是:

  • 可以将角色分配给组权限
  • 如果角色没有权限条目,则会自动拒绝该角色
  • 可以为用户授予覆盖权限
  • 用户覆盖权限是授予或拒绝
  • 如果明确拒绝用户权限,无论哪个角色说"已授予",则覆盖获胜.
  • 用户可以拥有多个角色
  • 角色可以有层次结构
  • 角色可以继承其他角色(例如,"论坛超级版主"角色是"论坛版主","系统维护者","论坛版主"角色已经从"论坛用户"角色继承)
  • 从其他拒绝或授予权限的角色继承的角色会覆盖其子权限
  • 权限按"模块"分组(例如,"博客"模块可以具有"编辑条目"权限,"论坛"模块可以具有"编辑条目"权限,并且它们不会发生冲突)
  • 有"Everything and Anything"权限可自动授予完全访问权限

所以,有了这些要求,这就是我在考虑这样做的方式.

表:用户

id            | int     | unique id
Run Code Online (Sandbox Code Playgroud)

表:角色

id            | int     | unique id
--------------|---------------------------------------------
title         | varchar | human readable name
Run Code Online (Sandbox Code Playgroud)

表:权限

id            | int     | unique id
--------------|---------------------------------------------
module        | varchar | module name
--------------|---------------------------------------------
title         | varchar | human readable name
--------------|---------------------------------------------
key           | varchar | key name used in functions
Run Code Online (Sandbox Code Playgroud)

表:Role_User

role_id       | int     | id from roles table
--------------|--------------------------------------------- …
Run Code Online (Sandbox Code Playgroud)

php mysql permissions hierarchy rbac

36
推荐指数
1
解决办法
3万
查看次数

标签 统计

hierarchy ×1

mysql ×1

permissions ×1

php ×1

rbac ×1