docs: specify teacher class lock
parent
36fad32043
commit
3d13a17cfe
@ -0,0 +1,26 @@
|
||||
# 教师管理与建班账号锁定设计
|
||||
|
||||
## 背景
|
||||
|
||||
学校当前不使用院系、专业、行政班。教师管理需展示当前学校的全部教师账号;教师一旦创建了仍存在的教学班,账号不得编辑或删除。
|
||||
|
||||
现有编辑页仍按院系、专业加载展示名称。无组织结构模式下这些 ID 为空,名称查询直接解引用空对象,导致编辑报错。
|
||||
|
||||
## 行为
|
||||
|
||||
1. 教师管理列表以当前操作人所属学校为唯一范围,管理型教师可以查看该学校全部教师;普通教师保持只读。
|
||||
2. 列表为每个教师补充 `hasCreatedClass` 状态:其 `created_by` 等于该教师 ID 的任意现存班级即为真。
|
||||
3. `hasCreatedClass` 为真时,前端禁用编辑、删除并提示“该教师已创建班级,不允许编辑或删除”。
|
||||
4. 后端更新和删除接口都复用同一建班检查,作为前端禁用之外的强制保护。
|
||||
5. 无院系、专业、行政班模式下,教师编辑表单不展示或查询院系、专业数据;未建班教师可正常编辑姓名、工号、电话、邮箱等账号资料。
|
||||
|
||||
## 实现边界
|
||||
|
||||
- 班级锁定只检查当前仍存在的班级记录;创建者删除自己所有班级后,账号恢复可编辑、可删除。
|
||||
- 不改变教师账号创建、导入、密码初始化和角色授权规则。
|
||||
- 不增加新的持久化字段;`hasCreatedClass` 为列表响应的运行时派生字段。
|
||||
|
||||
## 验证
|
||||
|
||||
- 后端测试覆盖:当前学校范围查询、已建班教师更新/删除被拒绝、未建班教师可更新。
|
||||
- 前端静态测试覆盖:请求携带操作人、无组织模式不再请求院系专业、锁定行禁用编辑/删除。
|
||||
Loading…
Reference in New Issue