gpt4 book ai didi

php - ACL 建模 - 如何管理访问控制列表的 "hierarchy"?

转载 作者:行者123 更新时间:2023-12-01 11:00:33 25 4
gpt4 key购买 nike

我仍在我的 ACL 项目中工作,我想要一些解决以下问题的想法:

我正在使用 MySQL 来存储我的用户、角色和权限。起初,我在我的 TABLE Roles 中创建了一个字段“parent_id”,我试图通过它来管理每个用户的权限。这有点奏效,直到我意识到如果我添加一个新角色,管理层次结构和控制谁有权访问哪些资源真的很复杂。我做了一些搜索,我意识到使用关系数据库来处理层次结构真的很复杂,所以我放弃了使用层次结构。

我希望您能帮助我找到管理用户创建的最佳解决方案:我有 4 个不同的用户:SuperAdmin、CustomerAdmin、Technician、客户。例如,当我在创建新用户的页面中时,我不想让技术人员创建 CustomerAdmin 或 SuperAdmin 类型的新用户。

我想只让 SuperAdmin 创建一个新用户,但我的限制之一是我必须让 CustomerAdmin 也创建用户,同时也是一名技术人员。

尝试更具说教性,SuperAdmin 可以是我。客户管理员是我的客户,他有一家企业。在他的企业中,他可以创建两种类型的用户:技术人员和客户。

这只是一个例子,但如果我想创建一种新的角色给他新的权限,我必须想办法拒绝他创建比他更强大的用户的权限。

我不确定我的问题是否客观,但欢迎任何能与我讨论这个问题的人。

最佳答案

您已经拥有自己的角色,但每个角色都需要拥有执行操作的权限。这几乎可以肯定是矫枉过正,但它应该非常灵活。

 | Role Table                           |  | Role ID | Role Name   | Access Level | ---------------------------------------- |       1 | SuperAdmin  |           10 | |       2 | ClientAdmin |           20 | |       3 | Technician  |           40 | |       4 | Client      |           80 | | Action Table            | | Action ID | Action Name | --------------------------- |         1 | Create User | |         2 | Delete User | Etc. | Rights Table                   | | Right ID | Role ID | Action ID | ---------------------------------- |        1 |       1 |         1 | |        2 |       1 |         2 | |        3 |       2 |         1 | |        4 |       2 |         2 | Etc. | Parameter Table                                         | | Param ID | Right ID | Parameter Name  | Parameter Value | ----------------------------------------------------------- |        1 |        1 | Max User Access |              10 | |        2 |        2 | Max User Access |              10 | |        3 |        3 | Max User Access |              20 | |        4 |        4 | Max User Access |              20 | Etc.

权限表显示 SuperAdmin 和 ClientAdmin 都可以创建和删除用户。参数表将 ClientAdmin 限制为创建最大访问级别为 20(1 为最高)的用户。您可以将此访问级别匹配回角色,以便为新用户提供角色列表,其中 Role.Access_Level >= Max User Access。

根据权利,Actions 可以使用多个参数集,但我想不出除了 Max User Access 之外的任何东西。

关于php - ACL 建模 - 如何管理访问控制列表的 "hierarchy"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11247491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com