主题
18 权限管理
版本:v3.0
所属端:后台管理
文档状态:已交付
1. 概述
1.1 背景与目标
权限管理是后台系统的安全基石,通过基于角色的访问控制(RBAC)模型,确保每位管理员只能访问其职责范围内的功能和数据。同时提供登录安全机制和操作审计能力。
本模块的设计目标:
- 建立清晰的RBAC权限模型(管理员→角色→菜单/资源)
- 提供安全的登录机制(验证码、失败锁定)
- 支持灵活的菜单和资源配置
- 所有关键操作可审计追溯
1.2 目标用户
| 角色 | 使用场景 |
|---|---|
| 超级管理员 | 管理所有管理员账号、配置角色权限 |
| 各角色管理员 | 在授权范围内使用后台功能 |
1.3 功能范围
| 功能模块 | 说明 | 优先级 |
|---|---|---|
| 管理员登录 | 账号+密码+验证码登录 | P0 |
| 管理员管理 | 账号的增删改查、启用/禁用 | P0 |
| 角色管理 | 角色的增删改查 | P0 |
| 菜单管理 | 后台菜单树的维护 | P0 |
| 资源管理 | 接口资源的分类管理 | P0 |
| 权限分配 | 为角色分配菜单和资源 | P0 |
2. 功能详细设计
2.1 管理员登录
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-PM-01 | 登录需提交账号、密码和图形验证码 |
| BR-PM-02 | 验证码为图片形式,每次登录刷新 |
| BR-PM-03 | 连续登录失败达到阈值(默认5次)后,账号锁定30分钟 |
| BR-PM-04 | 登录成功后签发访问凭证,后续请求携带凭证 |
| BR-PM-05 | 凭证过期后需重新登录 |
| BR-PM-06 | 已禁用账号无法登录 |
2.2 管理员管理
页面结构
管理员列表支持关键词搜索和分页。表格列:用户名、昵称、邮箱、手机号、状态、创建时间、操作。
编辑表单包含:用户名、密码(编辑时选填)、昵称、邮箱、手机号、状态、角色分配(多选)。
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-PM-10 | 用户名全局唯一 |
| BR-PM-11 | 新增时必须设置密码,编辑时密码为空则不修改 |
| BR-PM-12 | 每个管理员可分配多个角色 |
| BR-PM-13 | 禁用账号后该管理员无法登录 |
| BR-PM-14 | 删除为逻辑删除 |
2.3 角色管理
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-PM-20 | 角色包含:名称、描述、排序 |
| BR-PM-21 | 删除角色时,若有管理员关联则拒绝删除 |
| BR-PM-22 | 角色是权限分配的载体,管理员通过角色获得权限 |
2.4 菜单管理
页面结构
以树形结构展示后台菜单层级。每个菜单节点包含:名称、路径、图标、排序、是否隐藏。
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-PM-30 | 菜单支持多级层级(通常为两级:一级目录→二级页面) |
| BR-PM-31 | "隐藏"状态的菜单不在侧边栏展示,但可通过路由直接访问 |
| BR-PM-32 | 管理员登录后,仅加载其角色关联的菜单 |
2.5 资源管理
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-PM-40 | 资源代表后台的接口访问权限 |
| BR-PM-41 | 资源按分类组织(如"商品管理"、"订单管理") |
| BR-PM-42 | 每个资源包含:名称、路径、请求方式 |
| BR-PM-43 | 管理员访问未授权资源时返回"无权限" |
2.6 权限分配
业务规则
| 编号 | 规则描述 |
|---|---|
| BR-PM-50 | 为角色分配菜单:控制该角色可见的后台页面 |
| BR-PM-51 | 为角色分配资源:控制该角色可调用的接口 |
| BR-PM-52 | 权限变更即时生效,管理员下次请求即按新权限校验 |
3. 接口能力
| 能力名称 | 说明 | 是否需登录 |
|---|---|---|
| 获取验证码 | 返回图形验证码 | 否 |
| 管理员登录 | 校验账号密码和验证码 | 否 |
| 获取当前用户信息 | 返回基本信息、角色、菜单 | 是 |
| 退出登录 | 注销凭证 | 是 |
| 管理员增删改查 | 账号管理 | 是 |
| 角色增删改查 | 角色管理 | 是 |
| 菜单树管理 | 菜单增删改查 | 是 |
| 资源管理 | 资源分类和资源列表 | 是 |
| 角色菜单分配 | 为角色设置可访问菜单 | 是 |
| 角色资源分配 | 为角色设置可访问资源 | 是 |
4. 核心数据实体
| 实体 | 业务含义 | 关键属性 |
|---|---|---|
| 管理员 | 后台登录账号 | 用户名、密码、昵称、邮箱、手机号、状态 |
| 角色 | 权限集合的载体 | 名称、描述、排序 |
| 菜单 | 后台页面导航项 | 名称、路径、图标、上级菜单、排序、是否隐藏 |
| 资源 | 接口访问权限 | 名称、路径、请求方式、所属分类 |
| 资源分类 | 资源的分组 | 名称、排序 |
实体关系:管理员↔角色(多对多);角色↔菜单(多对多);角色↔资源(多对多);资源→资源分类(多对一);菜单→菜单(自关联,树形)。
5. 验收标准
| 编号 | 验收条件 |
|---|---|
| AC-PM-01 | 登录流程正常(验证码校验、凭证签发) |
| AC-PM-02 | 连续失败后账号锁定 |
| AC-PM-03 | 管理员增删改查正常,角色分配正确 |
| AC-PM-04 | 角色增删改查正常,有关联时删除被拒绝 |
| AC-PM-05 | 菜单树管理正常 |
| AC-PM-06 | 角色菜单分配后,管理员仅看到授权菜单 |
| AC-PM-07 | 角色资源分配后,未授权接口返回403 |
| AC-PM-08 | 禁用账号无法登录 |