参考
备注
本文章未思考字段权限的实现,仅仅思考了简单的功能权限与数据权限的实现,建议具体参考上面的引用链接进行学习。
表结构定义
users、rules、roles、user_join_roles 表实现功能权限管理
users、departments、jobs 表实现数据权限管理
- users 用户表
字段名 |
类型 |
注释 |
id |
int |
ID |
name |
varchar |
昵称 |
age |
tinyint |
年龄 |
department_id |
int |
所属部门ID |
job_id |
int |
所属职务ID |
address |
varchar |
地址(涉及隐私,普通员工禁止查看) |
created_at |
datetime |
创建时间 |
- departments 部门表
字段名 |
类型 |
注释 |
id |
int |
ID |
name |
varchar |
部门名称 |
department_id |
int |
所属部门ID |
created_at |
datetime |
创建时间 |
- jobs 职务表
字段名 |
类型 |
注释 |
id |
int |
ID |
name |
varchar |
职务名称 |
data_auth |
tinyint |
数据权限(1.本人,2.本部门和本人,3.本部门、同级部门和本人),4.本部门、本人和本部门下所属部门,5. 本部门、本人、同级部门下属部门和本部门下所属部门,6.全部数据 |
created_at |
datetime |
创建时间 |
- rules 规则表
字段名 |
类型 |
注释 |
id |
int |
ID |
name |
varchar |
规则名称 |
url |
varchar |
接口地址 |
request_type |
varchar |
请求类型 |
unique_id |
varchar |
接口唯一ID(unique_id与id好像冲突了,因为id就是唯一的) |
rule_id |
int |
所属规则ID |
paramers |
varchar |
字段权限?但是有些接口字段包含关联,所以字段需要再思考下,可以至设置子节点所属父节点的权限字段,子节点自动继承,就实现了字段权限的管理。 |
created_at |
datetime |
创建时间 |
- roles 角色表
字段名 |
类型 |
注释 |
id |
int |
ID |
name |
varchar |
角色名称 |
rule_ids |
varchar |
规则ID列表 |
created_at |
datetime |
创建时间 |
- user_join_roles 用户关联角色表
字段名 |
类型 |
注释 |
id |
int |
ID |
user_id |
int |
用户ID |
role_id |
int |
角色ID |
created_at |
datetime |
创建时间 |
功能解释
权限: 功能权限、数据权限。
功能权限 (如RBAC)
根据接口去设置权限,如有一个用户接口,那么用户接口包含显示、增加、删除、
数据权限
数据范围:仅本人数据、本人所属部门数据、本人同级部门数据、本人所属部门与部门下属部门的数据、全部数据。
数据字段:HR能查看人员列表中包括职级、薪资等字段,其它角色仅能查看姓名邮箱等字段。