test(docs): 补齐隔离验收与功能实施记录

This commit is contained in:
LoveChengke committed 2026-10-17 13:04:22 +08:00
1 parent 57069a9a75
commit ead66f0b93
14 files changed
+899 -40

No files matched your search

+29 -2
View File
@@ -74,7 +74,7 @@ description: 权限矩阵、科目维度的收口规则,以及"前端隐藏
## 权限键与权限组(2026-10 起:权限组驱动,角色只是默认模板)
从权限组重构开始,**功能级准入不再看角色,而看权限键**:键目录同样是
`packages/shared/src/permissions.ts` 的 `PERMISSION_KEYS`(37 个,形如 `domain:action`,
`packages/shared/src/permissions.ts` 的 `PERMISSION_KEYS`(形如 `domain:action`,
中文名在 `PERMISSION_LABELS`、分组在 `PERMISSION_CATEGORIES`)。路由上挂的是
```ts
@@ -177,7 +177,34 @@ assertCanManageGrades / assertCanManageSubjectContent
离线设备上线后补领更新;取消下发后,已下载的安装包不再自动安装。
客户端关闭自动更新时,任何下发策略都不会强制安装。
远控关机、重启、注销和锁屏仍需管理端确认及本机确认,取消或系统执行失败都会回执。
远控由管理端确认下发;客户端立即执行白名单动作并回传真实执行结果。
联动插件及相关接口已下线;升级迁移会删除旧联动设备和推送记录,保留业务课表、通知及离线 JSON 导入。
服务端兼容旧客户端的心跳字段读取,旧设备可领取修复版;第一次升级仍遵循旧版空闲安装条件,新策略需修复版客户端。
## 日课表与岗位范围(2026-10-17)
| 能力 | 新权限键 | 默认角色 |
| -------------------------- | ------------------ | -------- |
| 全校时间表与时间点管理 | `timetable:manage` | ADMIN |
| 安装包、目标版本与安装策略 | `client:update` | ADMIN |
`client:update-push` 只保留旧配置兼容标识;下发与安装包写入口统一检查 `client:update`。
新增权限同步出现在 shared 的键目录、标签、类别与默认角色表;升级迁移为管理员默认组补齐新键。
| 内置教师岗位组 | 默认功能 | 数据范围 |
| -------------- | ---------------------------------------- | -------------------------------- |
| 班主任 | 教学内容 + 查看/管理设备,不含版本下发 | 自己担任班主任的班级 |
| 教师 | 作业、成绩、通知、叫人、课表与名单读取 | 班主任与任教班级 |
| 级长 | 设备、远控、名单/班级/课表/成绩/看板读取 | 管理员配置的年级 |
| 部长 | 同级长 | 管理员配置的一组年级(逗号分隔) |
四组 `builtin=true`、`defaultRole=null`;账号仍是 TEACHER。实际范围来自分组并集,
空年级/部范围不授权。通用查询通过 `teacherScopeWhere/resolveClassScope`,
设备写入还只合并含对应功能键的分组范围。管理员的 `permission:manage/system:manage` 不可剥夺。
范围从不赋予科目编辑权,仍须 `assertCanManageSubjectContent` 检查 Course 任课关系。
教师名单页复用学生管理视图与导出,路由 `roster:read`,隐藏编辑/调班/导入操作;服务端过滤范围和转出学生。
成绩关闭个人查询时只返回服务端聚合;班级端无个人明细、排名或极值,稀疏样本抑制,教师/管理员不受该个人查询开关影响。
旧时间表导入接口的写入/删除也要求 `timetable:manage`,避免绕过统一时间表权限;离线整套课表导入仍可由本班班主任使用,创建班级自有时间点。