feat(authz): 重写权限模板分配与班级授权边界
拆分能力、分配范围和业务关系,固定管理员能力并收紧组织级写入口。 补齐内容、课表、设备会话和实时通道授权,兼容旧库分配及历史快照。 重写权限分配预览,按实际可操作范围展示维护入口,合并学生入口并独立学年升级页。 增加授权攻击矩阵及静态门禁,更新隔离回归与开发契约。 验证:授权矩阵 23 段通过,Node 24 下 Web 63/63,类型检查、lint 与文档严格构建通过。
This commit is contained in:
1 parent
682818dd4a
commit
66be3a63b1
115 files changed
+4463
-2747
No files matched your search
@@ -114,8 +114,17 @@ for (const [userId, id, scopeValue] of [
|
||||
[head.id, 'builtin-head', 'HEAD'],
|
||||
[teacher.id, 'builtin-teacher', ''],
|
||||
] as const) {
|
||||
await prisma.permissionGroup.update({ where: { id }, data: { scopeValue } });
|
||||
await prisma.userPermissionGroup.create({ data: { userId, groupId: id } });
|
||||
const scope =
|
||||
id === 'builtin-grade'
|
||||
? 'GRADE'
|
||||
: id === 'builtin-division'
|
||||
? 'DIVISION'
|
||||
: id === 'builtin-head'
|
||||
? 'HEAD'
|
||||
: 'TEACHING';
|
||||
await prisma.userPermissionGroup.create({
|
||||
data: { userId, groupId: id, scope, scopeValue: ['GRADE', 'DIVISION'].includes(scope) ? scopeValue : '' },
|
||||
});
|
||||
}
|
||||
const server = createServer(createApp());
|
||||
await new Promise<void>((resolve) => server.listen(0, '127.0.0.1', resolve));
|
||||
|
||||
Reference in new issue
Block a user