# 权限模型参考

## 角色定义

| 角色代码 | 角色名称 | 说明 |
|----------|----------|------|
| teacher_subject | 单科教师 | 教授特定学科，按班级授课 |
| teacher_head | 班主任 | 管理班级全面事务 |
| leader_grade | 年级组长 | 统筹年级教学 |
| admin_school | 校级管理层 | 校长/教导主任等 |
| sysadmin | 系统管理员 | 技术运维 |

## 权限矩阵

| 数据范围 | teacher_subject | teacher_head | leader_grade | admin_school |
|-----------|-----------------|--------------|--------------|--------------|
| 所教班级学生 × 所教学科掌握度 | ✔ 读写 | ✔ 只读 | ✔ 只读 | ✔ 只读 |
| 所带班级学生 × 全学科综合掌握度 | ✘ | ✔ 读写 | ✔ 只读 | ✔ 只读 |
| 同年级所有班级 × 单学科对比 | ✘ | ✘ | ✔ 只读 | ✔ 只读 |
| 全校所有年级综合报告 | ✘ | ✘ | ✘ | ✔ 只读 |
| 批改本人布置的作业 | ✔ 读写 | ✘ | ✘ | ✘ |
| 添加/编辑知识点映射 | ✘ | ✘ | ✘ | ✘ (sysadmin) |
| 查看系统操作日志 | ✘ | ✘ | ✘ | ✘ (sysadmin) |

## 权限校验规则

1. 教师只能批改自己布置的作业（按 `subjectId` + `classId` 匹配）
2. 班主任默认拥有所带班级所有学科数据的查看权限
3. 跨年级数据默认不可见，需特别授权
4. 教师可以授权给自己指定的助理教师（支持临时授权，自动过期）
