权限管理
权限管理提供系统权限定义的完整 CRUD 操作。权限是 RBAC 模型中的最小单位,标识"谁能做什么"。
功能说明
- 权限分页查询(支持关键词和模块筛选)
- 权限新增 / 修改 / 删除(支持批量)
- 权限详情查看
- 权限模块列表查询
- 按模块查询权限列表
- 数据导出(Excel)
- 导入模板下载
- 数据导入(Excel)
API 接口
所有接口均需要 sys:permission:* 权限。
| 方法 | 路径 | 权限标识 | 说明 |
|---|---|---|---|
| GET | /api/v1/sys/permission/page | sys:permission:page | 获取权限分页(支持 keyword、module 筛选) |
| POST | /api/v1/sys/permission/create | sys:permission:create | 添加权限 |
| POST | /api/v1/sys/permission/modify | sys:permission:modify | 编辑权限 |
| POST | /api/v1/sys/permission/remove | sys:permission:remove | 删除权限 |
| GET | /api/v1/sys/permission/detail | sys:permission:detail | 获取权限详情 |
| GET | /api/v1/sys/permission/export | sys:permission:export | 导出权限数据 |
| GET | /api/v1/sys/permission/template | sys:permission:template | 下载导入模板 |
| POST | /api/v1/sys/permission/import | sys:permission:import | 导入权限数据 |
| GET | /api/v1/sys/permission/modules | sys:permission:modules | 获取权限模块列表 |
| GET | /api/v1/sys/permission/by-module | sys:permission:by-module | 根据模块获取权限列表 |
数据模型
sys_permission 表主要字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| id | VARCHAR(32) | 主键(雪花ID) |
| code | VARCHAR(128) | 权限标识(如 sys:banner:page) |
| name | VARCHAR(64) | 权限名称 |
| module | VARCHAR(64) | 所属模块(如 sys:banner) |
| category | VARCHAR(32) | 权限类型 |
权限标识规范
权限标识格式为 {module}:{action}:
| 权限标识 | 说明 |
|---|---|
sys:banner:page | Banner 分页查询 |
sys:user:create | 创建用户 |
sys:role:grantPermission | 角色分配权限 |
sys:dict:tree | 字典树查询 |
权限自动发现 vs 权限定义
框架有两个层面的"权限"概念:
- 权限自动发现(装饰器扫描): 启动时扫描路由的
@HeiCheckPermission装饰器,缓存到 Redis。仅用于展示有哪些权限可用。 - 权限定义(数据库):
sys_permission表中的记录,需要管理员手动创建。角色分配权限时引用的是数据库中的权限记录。
权限自动发现只缓存到 Redis,不会自动写入 sys_permission 表。