RBAC 权限配置指南
本文档讲解 Forge Admin 中 RBAC(基于角色的访问控制)权限体系的完整配置流程,帮助你理解各要素之间的关联关系并掌握从零配置一个新角色的完整操作。
权限模型
Forge Admin 采用经典的 RBAC 模型,权限控制链路为:
用户(User)→ 角色(Role)→ 菜单/资源(Menu/Resource)- 用户:系统的登录账号,不直接拥有权限
- 角色:权限的载体,一个角色关联多个菜单,一个用户可以拥有多个角色
- 菜单/资源:系统中的可访问资源,包括目录、页面菜单和操作按钮
用户的最终权限 = 其所拥有角色的权限并集。
权限要素说明
| 要素 | 说明 | 配置入口 |
|---|---|---|
| 菜单目录 | 导航分类,如"系统管理" | 菜单管理 |
| 页面菜单 | 具体功能页面,如"用户列表" | 菜单管理 |
| 按钮权限 | 页内操作控制,如"新增用户" | 菜单管理(类型选按钮) |
| 数据权限 | 控制数据可见范围 | 角色管理→数据权限 |
完整配置步骤
下面以创建一个"部门管理员"角色为例,演示从头配置一个完整权限角色的流程。
第一步:定义菜单资源(如已存在可跳过)
- 进入
系统管理 > 菜单管理 - 确认所需的菜单页面已存在(如"用户管理"、"组织机构管理")
- 确认所需的按钮权限已配置(如"新增用户"、"编辑用户")
- 如果缺少,按菜单与资源管理的说明补充
第二步:创建角色
- 进入
系统管理 > 角色管理 - 点击 新增 按钮
- 填写角色名称:"部门管理员"
- 填写角色编码:
ROLE_DEPT_ADMIN - 点击 确定
第三步:分配菜单权限
- 在角色列表中,点击"部门管理员"操作列的 分配菜单
- 在菜单权限树中,勾选该角色需要访问的资源,例如:
系统管理→用户管理(勾选,包含查看)系统管理→用户管理→新增(勾选按钮权限)系统管理→用户管理→编辑(勾选)系统管理→用户管理→导出(勾选)系统管理→组织机构管理(勾选)
- 点击 确认 保存
第四步:设置数据权限
- 在角色列表中,点击"部门管理员"操作列的 数据权限
- 选择数据范围:本部门及以下数据
- 点击 确定。这意味着拥有此角色的用户只能查看本部门和下属部门的数据
第五步:分配用户
- 在角色列表中,点击"部门管理员"操作列的 分配用户
- 在待选用户列表中,勾选目标用户
- 点击 确定
第六步:验证
- 使用被分配该角色的用户账号登录系统
- 检查左侧菜单是否仅显示已分配的菜单项
- 检查操作按钮是否正确显示(如"新增"、"编辑")
- 检查数据列表是否仅显示权限范围内的数据
常见配置模式
| 场景 | 菜单权限 | 数据权限 | 角色编码建议 |
|---|---|---|---|
| 超级管理员 | 全部菜单 | 全部数据 | ROLE_ADMIN |
| 部门经理 | 本部门相关功能 | 本部门及以下 | ROLE_DEPT_MANAGER |
| 普通员工 | 个人相关功能 | 仅本人 | ROLE_EMPLOYEE |
| 只读用户 | 全部菜单查看 | 全部/限制 | ROLE_READONLY |
注意事项
- 用户可拥有多个角色,权限取并集
- 修改角色权限后,已登录用户需重新登录或等待 Token 过期后生效
- 数据权限与菜单权限相互独立,需分别配置
- 删除菜单资源时,关联的角色权限不会自动清理,可能导致脏数据
