用户模块
用户模块 (/users) 是身份系统的核心。它处理用户账号的生命周期、个人资料管理以及与其他系统实体的关系。
数据模型
User 实体是 RBAC 图中的中心节点。
- 关系:
roles: 与Role实体的多对多关系。department: 与Department实体的多对一关系。sessions: 与活跃UserSession记录的一对多关系。
- 安全字段:
password: 以 bcrypt 哈希形式存储。永远不会在 API 响应中返回。totpSecret: MFA 的加密密钥。recoveryCodes: 加密的备份代码。
用户管理 (/users)
这些接口主要供管理后台 UI 使用。
用户列表 (
GET /users)- 支持分页 (
page,pageSize)。 - 过滤器:
username,realName,deptId(递归),status,roleId。 - 返回用户列表及其关联的部门和角色名称。
- 支持分页 (
创建用户 (
POST /users)- 逻辑:
- 检查重复用户名。
- 对默认密码进行哈希处理(如果未提供)。
- 连接关联关系(角色、部门)。
- 逻辑:
更新用户 (
PUT /users/:id)- 更新个人资料字段。
- 注意: 出于安全考虑,密码更新通过单独的接口处理。
- 状态变更: 如果用户被禁用 (
status: 0),其活跃会话将立即被撤销。
删除用户 (
DELETE /users/:id)- 物理删除: 目前执行物理删除(移除记录)。
- 约束: 无法删除当前登录的用户(自我保护)。
个人资料管理 (/users/me)
这些接口供当前认证用户管理自己的账号。
获取个人资料 (
GET /users/me)- 返回当前用户的完整个人资料。
- 包含用于前端访问控制的
permissions列表(从所有角色合并而来)。
更新个人资料 (
PUT /users/me)- 允许更新:
realName,avatar,homePath。 - 受限: 用户无法通过此接口更改自己的
username、roles或department。
- 允许更新:
修改密码 (
PUT /auth/password)- 需要
oldPassword和newPassword。 - 成功后,该用户的所有其他会话将被撤销。
- 需要