用户、权限组以及权限的分配
一、权限组
权限组的意思就是一组权限的集合。在论坛等一些系统中,我们常常能够看到一些角色:游客,会员,管理员,超级管理员。他们的权限以及能够查看的板块都是不一样的。这样的角色我们也可以称作权限组。
二、用户,权限组(角色),权限的关系
如果每个用户都要分配一系列的权限,未免太麻烦了。所以,中间可以加一个权限组。
- 1.一个用户可以拥有多个权限组
- 2.一个权限组可以被多个用户所有
- 3.一个权限组可以拥有多个权限
- 4.一个权限可以被多个权限组所拥有
所以,应该是有3个主表:用户(tp_auth_admin
),权限(tp_auth_rule
),权限组(tp_auth_group
);
外加2个多对多的表 (可减到一个表,其中一个权限组和权限多对多的表,可以合并到权限组主表中) ,另外一个是用户和权限组多对多的tp_auth_group_access
表
三、操作
- 1、管理用户(
tp_auth_admin
)表
uid | user | name | password |
---|---|---|---|
1 | admin | 超级管理员 | 123456 |
2 | manager | 管理员 | 123456 |
3 | member | 会员 | 123456 |
- 2、权限(
tp_auth_rule
)表
pid
表示父权限的id
,为0
时表示根权限
id | path | title | pid |
---|---|---|---|
1 | # | 首页 | 0 |
2 | admin/home | 系统信息 | 1 |
3 | # | 用户管理 | 0 |
4 | admin/userList | 用户列表 | 3 |
5 | admin/groupList | 用户组列表 | 3 |
- 3、给权限组(角色)
tp_auth_group
分配权限
比如说: (可减到一个表,其中一个权限组和权限多对多的表,可以合并到权限组主表中)
tp_auth_rule
权限表有4个权限rule:1, 2, 3, 4
tp_auth_group
权限组表有3个权限组:admin(超级管理员),manager(管理员), member(会员)
tp_auth_group
权限组表(有对应的权限rules
):
id | title | rules | status |
---|---|---|---|
1 | 超级管理员 | 1,2,3,4 | 1 |
2 | 管理员 | 1,3,4 | 1 |
3 | 会员 | 2,3 | 1 |
- 4、用户和权限组(角色)
tp_auth_group_access
表
uid | group_id |
---|---|
1 | 1 |
1 | 2 |
1 | 3 |
2 | 2 |
3 | 3 |