我仍在从事我的 ACL 项目,我想对以下问题提出一些想法:
我使用 MySQL 来存储我的用户、角色和权限。起初,我在我的 TABLE Roles 中创建了一个字段“parent_id”,并试图通过它来管理每个用户的权限。这是一种工作,直到我意识到如果我添加一个新角色,管理层次结构和控制谁可以访问哪个资源真的很复杂。我做了一些搜索,我意识到使用关系数据库来处理层次结构真的很复杂,所以我放弃了使用层次结构。
我希望您能帮助我找到管理用户创建的最佳解决方案:我有 4 个不同的用户:SuperAdmin、CustomerAdmin、技术员、客户。例如,当我在页面中创建新用户时,我不想让技术人员创建类型为 CustomerAdmin 或 SuperAdmin 的新用户。
我想只让超级管理员创建一个新用户,但我的一个限制是我必须让客户管理员也创建用户,也是技术人员。
试图更具说教性,超级管理员可以是我。客户管理员是我的客户,他有一个企业。在他的企业中,他可以创建 2 类用户:技术人员和客户。
这只是一个例子,但是如果我想创建一种新的角色来赋予他新的权限,我必须找到一种方法来拒绝他创建一个比他更强大的用户的权限。
我不确定我的问题是否客观,但欢迎任何可以与我谈论这个问题的人。