39 lines
1.2 KiB
Markdown
39 lines
1.2 KiB
Markdown
# 用户与权限模块说明(`src/users`)
|
||
|
||
## 1. 目标
|
||
|
||
- 管理用户基础信息(姓名、手机号、角色、组织归属)。
|
||
- 维护 B 端角色权限边界和工程师绑定医院逻辑。
|
||
|
||
## 2. 角色枚举
|
||
|
||
- `SYSTEM_ADMIN`:系统管理员
|
||
- `HOSPITAL_ADMIN`:院管
|
||
- `DIRECTOR`:主任
|
||
- `LEADER`:组长
|
||
- `DOCTOR`:医生
|
||
- `ENGINEER`:工程师
|
||
|
||
## 3. 关键规则
|
||
|
||
- 医院内数据按 `hospitalId` 强隔离。
|
||
- 仅 `SYSTEM_ADMIN` 可执行工程师绑定医院。
|
||
- 用户组织字段校验:
|
||
- 院管/医生/工程师等需有医院归属;
|
||
- 主任/组长需有科室/小组等必要归属;
|
||
- 系统管理员不能绑定院内组织字段。
|
||
- 更新用户时,仅允许医生调整 `departmentId/groupId`(后端强约束)。
|
||
- 科室/小组父级关系冻结:不允许通过更新接口迁移科室所属医院或小组所属科室。
|
||
|
||
## 4. 典型接口
|
||
|
||
- `GET /users`、`GET /users/:id`、`PATCH /users/:id`、`DELETE /users/:id`
|
||
- `POST /b/users/:id/assign-engineer-hospital`
|
||
|
||
## 5. 开发改造建议
|
||
|
||
- 若增加角色,请同步修改:
|
||
- Prisma `Role` 枚举
|
||
- `roles.guard.ts` 与各 Service 权限判断
|
||
- Swagger DTO 中文说明
|