我目前使用Symphony 2库在PHP中构建应用程序,但我想这个问题适用于任何类型的Web应用程序。这是基本的基础设施,我想实现:如何实现基于组和角色的权限系统?
- 每个用户是其中的一部分或多个组
- 每个组实现由一组实施
- 角色适用于所有用户在一个或多个角色
- 用户可以在其组
一个例子不执行其他角色组
- 一组“作家”落实“作家”的角色和“评论主持人”的角色
- 一组“管理员”实现了“管理员”角色
- 用户“亨利”是作家群体的一部分,和管理员组
- 用户“亨利”实现了“所有者”角色
角色情感该用户是“作家”,“评论主持人”,“管理员”和“所有者”。
编辑
它是一个很好的做法还是不要有这种行为:用户可以从自己的组继承的角色,可以有个人的作用也是如此。 如果是这样,如何让它变成现实?
我认为5个表:
用户:
- ID
- 名
角色:
- ID
- 名
UserRole的:
- id_user(FK)
- id_role(FK)
组:
- ID
- 名
GroupRole:
- id_group(FK)
- id_role(FK)
用户组:
- id_user(FK)
- id_group(FK)
这可能是工作和存在的主要问题是防止添加用户已经从它所属的组的个人作用。
它似乎有点复杂。有没有更好的方法来做到这一点?
感谢
那么......问题是什么?看起来你已经全部计划好了,所以你需要我们帮忙的是什么? – Majenko
编辑我自己的帖子;) – Rybus
你基本上是在描述一个相当普通的系统,并且已经制定了正常的表格。有一个角色也在他们的团队中的用户有问题吗?这真的有影响吗?他们有角色,无论他们从哪里获得角色,或者他们有两次角色 - 如果他们拥有角色都没有关系。 – Majenko