feat(core-edu): 完整实现 core-edu 教学核心服务

包含 classes/exams/homework/grades/attendance/scheduling 域、outbox、iam-consumer、redis 配置等完整实现
This commit is contained in:
SpecialX
2026-07-10 19:08:56 +08:00
parent 06a646ea4e
commit 58c0ba1bd9
55 changed files with 4204 additions and 305 deletions

View File

@@ -9,16 +9,35 @@ import { PermissionDeniedError } from "../shared/errors/application-error.js";
import type { AuthenticatedRequest } from "./auth.middleware.js";
export const Permissions = {
// Exam permissions
EXAM_CREATE: "CORE_EDU_EXAM_CREATE" as const,
EXAM_READ: "CORE_EDU_EXAM_READ" as const,
EXAM_UPDATE: "CORE_EDU_EXAM_UPDATE" as const,
EXAM_DELETE: "CORE_EDU_EXAM_DELETE" as const,
EXAM_PUBLISH: "CORE_EDU_EXAM_PUBLISH" as const,
EXAM_SUBMIT: "CORE_EDU_EXAM_SUBMIT" as const,
EXAM_GRADE: "CORE_EDU_EXAM_GRADE" as const,
// Homework permissions
HOMEWORK_CREATE: "CORE_EDU_HOMEWORK_CREATE" as const,
HOMEWORK_READ: "CORE_EDU_HOMEWORK_READ" as const,
HOMEWORK_UPDATE: "CORE_EDU_HOMEWORK_UPDATE" as const,
HOMEWORK_SUBMIT: "CORE_EDU_HOMEWORK_SUBMIT" as const,
HOMEWORK_GRADE: "CORE_EDU_HOMEWORK_GRADE" as const,
// Grade permissions
GRADE_CREATE: "CORE_EDU_GRADE_CREATE" as const,
GRADE_READ: "CORE_EDU_GRADE_READ" as const,
GRADE_UPDATE: "CORE_EDU_GRADE_UPDATE" as const,
// Attendance permissions
ATTENDANCE_CREATE: "CORE_EDU_ATTENDANCE_CREATE" as const,
ATTENDANCE_READ: "CORE_EDU_ATTENDANCE_READ" as const,
// Class permissions
CLASS_READ: "CORE_EDU_CLASS_READ" as const,
// Course permissions
COURSE_CREATE: "CORE_EDU_COURSE_CREATE" as const,
COURSE_READ: "CORE_EDU_COURSE_READ" as const,
// Schedule permissions
SCHEDULE_CREATE: "CORE_EDU_SCHEDULE_CREATE" as const,
SCHEDULE_READ: "CORE_EDU_SCHEDULE_READ" as const,
} as const;
export type Permission = (typeof Permissions)[keyof typeof Permissions];
@@ -33,29 +52,56 @@ const ROLE_PERMISSIONS: Record<string, Permission[]> = {
Permissions.EXAM_READ,
Permissions.EXAM_UPDATE,
Permissions.EXAM_DELETE,
Permissions.EXAM_PUBLISH,
Permissions.EXAM_SUBMIT,
Permissions.EXAM_GRADE,
Permissions.HOMEWORK_CREATE,
Permissions.HOMEWORK_READ,
Permissions.HOMEWORK_UPDATE,
Permissions.HOMEWORK_SUBMIT,
Permissions.HOMEWORK_GRADE,
Permissions.GRADE_CREATE,
Permissions.GRADE_READ,
Permissions.GRADE_UPDATE,
Permissions.ATTENDANCE_CREATE,
Permissions.ATTENDANCE_READ,
Permissions.CLASS_READ,
Permissions.COURSE_CREATE,
Permissions.COURSE_READ,
Permissions.SCHEDULE_CREATE,
Permissions.SCHEDULE_READ,
],
teacher: [
Permissions.EXAM_CREATE,
Permissions.EXAM_READ,
Permissions.EXAM_UPDATE,
Permissions.EXAM_PUBLISH,
Permissions.EXAM_GRADE,
Permissions.HOMEWORK_CREATE,
Permissions.HOMEWORK_READ,
Permissions.HOMEWORK_UPDATE,
Permissions.HOMEWORK_SUBMIT,
Permissions.HOMEWORK_GRADE,
Permissions.GRADE_CREATE,
Permissions.GRADE_READ,
Permissions.GRADE_UPDATE,
Permissions.ATTENDANCE_CREATE,
Permissions.ATTENDANCE_READ,
Permissions.CLASS_READ,
Permissions.COURSE_CREATE,
Permissions.COURSE_READ,
Permissions.SCHEDULE_CREATE,
Permissions.SCHEDULE_READ,
],
student: [
Permissions.EXAM_READ,
Permissions.EXAM_SUBMIT,
Permissions.HOMEWORK_READ,
Permissions.HOMEWORK_SUBMIT,
Permissions.GRADE_READ,
Permissions.ATTENDANCE_READ,
Permissions.CLASS_READ,
Permissions.COURSE_READ,
Permissions.SCHEDULE_READ,
],
};