参考
备注
本文章未思考字段权限的实现,仅仅思考了简单的功能权限与数据权限的实现,建议具体参考上面的引用链接进行学习。
表结构定义
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 | 请求类型 |
rule_id | int | 所属规则ID |
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能查看人员列表中包括职级、薪资等字段,其它角色仅能查看姓名邮箱等字段。