docs: права преподавателя, аудит, CI и итоговые проверки

This commit is contained in:
2026-10-27 20:39:37 +03:00
parent d7b886513f
commit 25a3dbd0fb
12 changed files with 204 additions and 109 deletions

View File

@@ -61,6 +61,8 @@ progress `:8083`, web `:8090`. Интерфейс: `http://localhost:8090`.
- Gradle daemon фиксируется на JDK 21 (`gradle/gradle-daemon-jvm.properties`): detekt 1.23
не работает на JDK 25.
- Тестовая инфраструктура — `libs:test-support` (JUnit 5, MockK, Testcontainers `postgres:18`).
- CI merge gate — `.gitlab-ci.yml`: `./gradlew --no-daemon test ktlintCheck detekt`
на push/MR. Runner должен разрешать privileged `docker:dind` для Testcontainers.
## Запуск в Docker (для сервера)
@@ -119,6 +121,16 @@ cp .env.prod.example .env.prod # заполнить LMS_DB_PASSWORD
маршрут показывают сводку, оценки, комментарии с авторами, защиты и все
попытки сдачи со скачиванием ZIP; студенту API отдаёт только его профиль
и опубликованные данные.
- **Работа преподавателя**: ведомость группы переиспользует
`/admin/groups/{groupId}?courseId=...` без админских контролов — оценки и
комментарии, публикация, уровни/варианты и раздача, защиты (код/reset),
скачивание попыток и ZIP группы; лабораторные/уровни/варианты своего курса,
привязка/отвязка групп на `/teacher/courses/{id}`, авторские материалы на
`/teacher/courses/{id}/content`. Чужой курс отклоняется на сервисах.
- **Аудит**: чувствительные действия (профили, скачивания, оценки, защиты,
курсы, группы, материалы, преподаватели, жизненный цикл) пишутся в
`identity.audit_events`; админ смотрит `/admin/audit` с фильтром по действию
и временем МСК.
- **Повышение и жизненный цикл**: `/admin/promotion` — dry-run, применение
и откат повышения (автоматический dry-run 31 августа МСК); на странице
группы — академотпуск, возврат, отчисление, архив и восстановление;