Appearance
菜单权限
后台的权限体系由「权限规则 → 角色组 → 管理员」三层构成:
- 权限规则:后台左侧菜单与操作按钮的权限点,以树形结构组织。
- 角色组:将一组权限规则打包,授予一个角色。
- 管理员:后台登录账号,绑定一个或多个角色组,从而获得对应菜单与按钮权限。
权限判断发生在后台中间件层,未登录返回 401,已登录但权限不足返回 403。
权限规则
权限规则对应菜单权限表,每条规则代表后台的一个菜单节点或按钮操作,包含如下字段:
| 字段 | 说明 |
|---|---|
pid | 父级规则 ID,根节点为空(null) |
path | 菜单路径 / 组件路径 |
type | 节点类型(目录、菜单、按钮) |
name | 规则名称,如 权限规则 |
component | 前端组件地址 |
sort | 排序值,越小越靠前 |
meta | 附加元信息(图标、标题等) |
status | 状态,1 启用,0 禁用 |
规则以树形展示,支持拖拽调整排序。系统内置一套默认菜单规则,可一键恢复初始状态。
NOTE
权限规则是角色的“可选项”。按钮级权限在后台通过接口动态下发,前端根据返回结果控制按钮显隐。
角色组
角色组将若干权限规则聚合为一个角色,字段如下:
| 字段 | 说明 |
|---|---|
pid | 父级角色组 ID,支持角色组分组 |
name | 角色组名称 |
rules | 勾选的权限规则 ID 数组 |
status | 状态,1 启用,0 禁用 |
创建或更新角色组后,系统会自动刷新按钮权限缓存,管理员重新登录后生效。
超级管理员
拥有 *(全部权限)规则的管理员视为超级管理员,可访问后台全部菜单与接口,不受角色组规则限制。
管理员
管理员字段包括账号、密码、角色组关联等信息:
| 字段 | 说明 |
|---|---|
username | 登录账号 |
email / mobile | 邮箱 / 手机号 |
password | 登录密码,存储前使用「随机盐 + 哈希」加密,不保存明文 |
gid[] | 所属角色组 ID 数组,一个管理员可属于多个角色组 |
is_system_admin | 是否超级管理员 |
创建管理员
- 在后台「菜单权限 → 管理员」点击创建。
- 填写账号、姓名、邮箱 / 手机号。
- 选择所属角色组(可多选)。
- 设置初始密码并保存。
权限生效
- 管理员拥有的权限 = 所有角色组
rules的并集。 - 若某管理员属于多个角色组,取权限规则去重合并。
- 角色组变更后需要重新登录才能看到最新菜单。
分类授权
除菜单权限外,管理员还可以按内容分类授权(如音乐、视频等分类),仅能管理被授权的分类内容。
菜单权限 API 一览
后台接口统一挂载在 /admin 前缀下,常用权限相关接口:
| 接口 | 方法 | 说明 |
|---|---|---|
/admin/auth/menu/index | GET | 权限规则列表(树形) |
/admin/auth/menu/create | POST | 新增权限规则 |
/admin/auth/menu/update | POST | 编辑权限规则 |
/admin/auth/menu/delete | POST | 删除权限规则 |
/admin/auth/group/index | GET | 角色组列表 |
/admin/auth/group/create | POST | 新增角色组 |
/admin/auth/group/update | POST | 编辑角色组 |
/admin/auth/group/delete | POST | 删除角色组 |
/admin/system/admin/index | GET | 管理员列表 |
/admin/system/admin/create | POST | 新增管理员 |
/admin/system/admin/update | POST | 编辑管理员 |
/admin/system/admin/delete | POST | 删除管理员 |
CAUTION
请勿删除系统内置的超级管理员,否则将无法进入后台。删除管理员前建议先确认其账号角色,避免误删。