You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

167 lines
5.6 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 管理型老师权限改造设计
## 背景
当前系统不需要单独的学校管理员角色。新的权限模型以老师账号为核心:平台超管维护教师账号,并指定某些教师为“管理型老师”。管理型老师登录后仍进入老师端,但拥有院系、专业、班级、教师、学生、任务分配、成绩中心等管理能力。
之前新增的学校管理员角色、学校管理员工作台、学校管理员专用菜单和接口不再作为后续方向,应逐步从菜单和权限体系中移除或废弃。
## 角色定义
### 平台超管
- 维护学校基础信息。
- 维护教师账号。
- 可以新增、编辑、删除教师账号。
- 可以指定教师是否为管理型老师。
- 删除教师时,如果该教师已经创建过班级,则不允许删除。
### 管理型老师
- 本质仍是老师账号。
- 由平台超管指定。
- 登录后进入老师端。
- 可以看到管理型老师所需菜单。
- 班级、学生、任务分配的可操作范围按“班级创建人”限制。
### 普通老师
- 本质仍是老师账号。
- 默认不是管理型老师。
- 非超管创建或导入的教师账号,一律默认为普通老师。
- 普通老师不能通过前端传参、导入模板或接口绕过权限成为管理型老师。
## 教师账号管理
平台超管端的“学校管理员管理”应改为“教师管理”。
教师管理需要支持:
- 教师列表。
- 新增教师。
- 编辑教师。
- 删除教师。
- 教师导入。
- 展示“是否管理型老师”。
- 新增、编辑教师时设置“是否管理型老师”。
“是否管理型老师”的权限规则:
- 只有平台超管可以看到该字段。
- 只有平台超管可以设置该字段。
- 除平台超管外,其他任何角色创建教师账号时,页面不展示该字段。
- 除平台超管外,其他任何角色创建教师账号时,后端强制保存为 false。
- 除平台超管外,其他任何角色导入教师账号时,后端强制保存为 false。
- 即使非超管前端恶意传入 true后端也必须覆盖为 false。
## 班级管理
班级需要增加“创建人”信息,用于标识该班级由哪个老师创建。
班级管理要求:
- 班级列表展示创建人。
- 管理型老师可以查看所有班级。
- 当前老师只能新增、编辑、删除、数据初始化自己创建的班级。
- 其他老师创建的班级只能查看。
- 删除教师时,如果该教师是任意班级的创建人,则不允许删除。
- 历史已有班级需要有可解释的创建人处理方式,避免权限判断为空。
## 院系管理
管理型老师可以操作院系管理:
- 新增院系。
- 编辑院系。
- 删除院系。
- 查询院系列表。
普通老师不开放院系管理操作入口。
## 专业管理
管理型老师可以操作专业管理:
- 新增专业。
- 编辑专业。
- 删除专业。
- 查询专业列表。
普通老师不开放专业管理操作入口。
## 学生管理
管理型老师可以查看所有学生账号,包括其他老师创建班级下的学生。
可操作范围:
- 只能新增学生到自己创建的班级。
- 只能导入学生到自己创建的班级。
- 只能编辑自己创建班级下的学生。
- 只能删除自己创建班级下的学生。
- 只能对自己创建班级下的学生做密码初始化。
- 只能对自己创建班级下的学生做数据初始化。
- 其他老师创建班级下的学生只能查看,不能操作。
学生导入要求:
- 导入模板中不出现数据 ID。
- 选择或填写的班级必须属于当前老师创建的班级。
- 后端必须校验班级创建人,不能只依赖前端下拉框限制。
## 任务分配
管理型老师可以查看所有班级的任务分配状态。
可操作范围:
- 只能对自己创建的班级进行任务分配。
- 其他老师创建的班级只能查看任务状态。
- 后端必须校验班级创建人,不能只依赖前端按钮隐藏。
## 成绩中心
管理型老师可以:
- 查看所有班级成绩。
- 按班级、学生等条件查询。
- 导出所有班级成绩。
成绩中心保持只读和导出能力,不按班级创建人限制查看范围。
## 菜单调整
平台超管端:
- 保留学校管理。
- 将学校管理员管理改为教师管理。
- 教师管理内展示并维护是否管理型老师。
老师端:
- 管理型老师展示院系管理、专业管理、班级管理、教师管理、学生管理、任务分配、成绩中心。
- 普通老师不展示管理型老师专属操作入口。
- 班级、学生、任务分配页面需要根据当前老师是否为创建人控制操作按钮。
学校管理员相关:
- 不再继续使用学校管理员工作台。
- 不再继续使用学校管理员菜单。
- 不再继续扩展学校管理员专用接口。
- 已经新增的学校管理员相关内容应在后续清理计划中移除或隐藏。
## 验收标准
- 平台超管可以新增教师并设置是否管理型老师。
- 平台超管可以编辑教师的是否管理型老师状态。
- 非超管创建教师时无法看到是否管理型老师。
- 非超管创建或导入教师时,数据库中是否管理型老师为 false。
- 管理型老师登录后可进入管理菜单。
- 班级列表展示创建人。
- 管理型老师只能操作自己创建的班级。
- 管理型老师只能操作自己创建班级下的学生。
- 管理型老师只能给自己创建的班级分配任务。
- 管理型老师可以查看并导出所有班级成绩。
- 已创建班级的教师不能被删除。
- 前端隐藏无权限按钮,后端同步拒绝越权操作。