# 用户权限控制逻辑与验证步骤

## 权限控制逻辑

```mermaid
flowchart TD
    A[用户发起注册] --> B{检查操作人角色}
    B -->|超级管理员| C[直接创建用户 - 状态 active]
    B -->|管理员| D{目标角色}
    B -->|普通用户| E{目标角色}
    B -->|三方用户| F[拒绝 - 无权限]
    
    D -->|normal/third| G[创建用户 - 状态 disabled<br/>创建工单等待审批]
    D -->|其他| F
    
    E -->|third| G
    E -->|其他| F
    
    G --> H[超级管理员审批]
    H -->|通过| I[用户状态改为 active]
    H -->|拒绝| J[用户保持 disabled]
```

## 验证步骤

### 1. 用户注册工单测试

1. 使用 **非超级管理员** (如 admin 或 normal 用户) 登录。
2. 对于 **Normal 用户**:
   - 侧边栏点击 **用户管理**。
   - 点击 **新建用户**，应跳转到 `/user/register-user`。
   - 提交注册后，应跳转到 `/user/workflows` (我的工单)。
3. 对于 **Admin 用户**:
   - 进入 **系统管理 -> 用户管理**。
   - 点击 **新建用户**，应跳转到 `/admin/users/register`。
   - 提交注册后，应跳转到 `/admin/workflows` (工单管理)。
4. 填写注册信息，点击提交。
   - 预期：提示“注册申请已提交”，不直接创建可用用户。
5. 切换为 **超级管理员** (superadmin) 登录。
6. 进入 **我的工单** 或工单管理页面，查看待审批的注册工单。
7. 点击工单详情，查看注册信息是否正确显示。
8. 审批通过工单。
   - 预期：工单状态变为 Approved，用户状态变为 active。
9. 在用户管理列表中验证新用户已存在且为激活状态。

### 2. 用户广场与管理功能测试

1. **用户广场 (User Square)**
   - 登录普通用户。
   - 侧边栏点击 **用户广场** (替代原通讯录)。
   - 验证页面展示是否类似项目列表（支持卡片/表格切换）。
   - 验证搜索和筛选功能是否正常。
   - 验证点击用户仅弹出详情，**无**编辑/删除按钮。
   - **数据验证**：应能看到所有 active 用户（包括其他管理员创建的），但看不到 active 以外的用户。

2. **用户管理 (User Management)**
   - 侧边栏点击 **用户管理**。
   - **普通用户**：验证只能看到 **自己创建的** 用户（包括待审核、已禁用等状态）。不能看到别人创建的用户。
   - **管理员**：验证能看到所有用户。
   - 验证 **编辑/删除** 按钮是否出现，并能正常触发工单流程。

3. **用户注册 (User Registration)**
   - 侧边栏点击 **用户管理 -> 新建用户**（或通过路由 `/user/register-user`）。
   - 验证是否进入注册页面。

### 3. 用户管理工单测试

1. 使用 **管理员** (admin) 登录。
2. 在 **用户管理** 列表中，对一个 **普通用户** (normal) 或 **三方用户** (third) 进行编辑。
3. 修改信息并填写 **变更理由**，点击更新。
   - 预期：提示“修改申请已提交”。
4. 对同一用户点击 **删除** 按钮，填写 **删除理由**，点击确认。
   - 预期：提示“删除申请已提交”。
5. 切换为 **超级管理员** (superadmin) 登录。
6. 查看相应的管理工单，审批通过。
7. 验证用户信息已更新或用户已被删除。
