RBAC 权限体系
identity + system 两个服务合力提供完整的 RBAC:用户—角色—权限 三级 + 菜单/按钮/数据三个粒度。
组成
| 对象 | 说明 |
|---|---|
| 用户 | 支持部门归属、多岗位、启用/禁用、Excel 批量导入导出 |
| 角色 | 挂权限点集合 + 数据范围;super_admin 直通全部 |
| 权限点 | 码约定 {domain}:{resource}:{action},如 system:user:create |
| 菜单 | 树结构种子下发,按角色权限过滤;前端据此渲染侧栏 |
| 部门 | 树结构,含主管(leader_user_id,审批流部门主管规则用) |
| 岗位 | 用户多对多关联,用户表单可选岗 |
三个控制粒度
- 接口级:路由挂权限中间件(Redis 缓存权限集合,miss 回源 DB)。
- 按钮级:前端
usePermission().hasPerm('system:user:create')控制显隐。 - 数据级(数据范围):角色可配「全部 / 本部门及以下 / 仅本人」,列表查询经数据范围插件自动过滤——审批流、日志查询等均已接入。
使用建议
新业务的权限点用 SQL 迁移播种并补挂 super_admin;不要在代码里硬编码角色名做判断(super_admin 直通已由中间件统一处理)。