限制主任变更:禁止将医生改为其他角色,禁止跨科室调整归属 新增 DIRECTOR_SCOPE_FORBIDDEN 统一错误文案 前端权限同步:主任可进入用户页,页面文案调整为“医生管理” 前端交互同步:主任创建/编辑时角色固定为医生,医院与科室范围锁定 仪表盘统计按角色收敛,主任视角展示本科室医生相关统计 补充 e2e 场景覆盖与接口文档说明"
1.6 KiB
1.6 KiB
用户与权限模块说明(src/users)
1. 目标
- 管理用户基础信息(姓名、手机号、角色、组织归属)。
- 维护 B 端角色权限边界和工程师绑定医院逻辑。
2. 角色枚举
SYSTEM_ADMIN:系统管理员HOSPITAL_ADMIN:院管DIRECTOR:主任LEADER:组长DOCTOR:医生ENGINEER:工程师
3. 关键规则
- 医院内数据按
hospitalId强隔离。 - 仅
SYSTEM_ADMIN可执行工程师绑定医院。 DIRECTOR/LEADER可读取用户列表,但仅返回当前科室可见用户。DIRECTOR可创建、查看、编辑、删除本科室医生,但不能跨科室操作,也不能把医生改成其他角色。- 用户组织字段校验:
- 院管/医生/工程师等需有医院归属;
- 主任/组长需有科室/小组等必要归属;
- 系统管理员不能绑定院内组织字段。
- 更新用户时,仅允许医生调整
departmentId/groupId(后端强约束)。 - 科室/小组父级关系冻结:不允许通过更新接口迁移科室所属医院或小组所属科室。
4. 典型接口
GET /users、GET /users/:id、PATCH /users/:id、DELETE /users/:idPOST /b/users/:id/assign-engineer-hospital
其中主任侧的常用链路为:
POST /users:创建本科室医生GET /users/:id:查看本科室医生详情PATCH /users/:id:修改本科室医生信息DELETE /users/:id:删除无关联数据的本科室医生
5. 开发改造建议
- 若增加角色,请同步修改:
- Prisma
Role枚举 roles.guard.ts与各 Service 权限判断- Swagger DTO 中文说明
- Prisma