# 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 为启用)