liuyun b807cc7df8
Some checks are pending
CI / backend (push) Waiting to run
CI / frontend (push) Waiting to run
docs(spec): 归档 online-session-management + 同步 session 主 spec
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-11 21:38:24 +08:00

50 lines
2.0 KiB
Markdown

# Users Specification
## Purpose
定义用户域的行为:分页查询(含数据权限过滤)、新增/编辑/删除(软删回收唯一键)、重置密码、分配角色,以及会话吊销。
## Requirements
### Requirement: 用户分页查询
系统 SHALL 支持按用户名/昵称/手机/状态分页查询用户;查询按数据权限过滤(仅本人/本部门/本部门及以下/自定义)。
#### Scenario: 部门管理员查看用户
- **WHEN** 数据权限为「本部门」的管理员查询用户列表
- **THEN** 仅返回本部门用户
### Requirement: 用户增删改
系统 SHALL 支持新增/编辑用户;删除为软删并回收用户名唯一键(可重建同名)。
#### Scenario: 软删重建
- **WHEN** 删除某用户后再创建同名用户
- **THEN** 创建成功
### Requirement: 重置密码
系统 SHALL 支持管理员重置用户密码;重置后吊销该用户所有会话(旧 token 失效)。
#### Scenario: 重置后踢下线
- **WHEN** 管理员重置某用户密码
- **THEN** 该用户旧 access/refresh token 立即失效
### Requirement: 分配角色
系统 SHALL 支持为用户分配角色(整体替换),分配后清该用户权限缓存。
#### Scenario: 分配角色
- **WHEN** 管理员为用户分配角色
- **THEN** 该用户下次请求按新角色聚合权限
### Requirement: 账号锁定
系统 SHALL 支持管理员锁定用户(可附原因);锁定后该用户无法登录,且其全部活跃会话被吊销。
#### Scenario: 锁定用户
- **WHEN** 管理员锁定某用户
- **THEN** 系统记录锁定时间与原因,吊销该用户全部会话,该用户后续登录被拒绝
### Requirement: 账号解锁
系统 SHALL 支持管理员解锁用户;解锁后清空锁定时间与原因,并清除该用户的登录失败计数。
#### Scenario: 解锁用户
- **WHEN** 管理员解锁某锁定用户
- **THEN** 系统清空锁定状态与登录失败计数,该用户恢复登录能力(若 status 为启用)