Stage 1.5: categories, enrollment expiry, access log, bulk grant, user page

This commit is contained in:
2026-04-07 11:59:13 +05:00
parent 992763aeb9
commit e9eff5bae5
16 changed files with 790 additions and 93 deletions
+5 -7
View File
@@ -39,17 +39,15 @@
---
## Этап 1.5 — Расширенное управление доступом (из emdesell)
**Цель:** способы выдачи доступа как в emdesell — ключи активации, срок доступа, категории.
## Этап 1.5 — Расширенное управление доступом
**Цель:** гибкое управление доступом: сроки, категории, пакеты, история.
- [ ] **Ключи активации:** генерировать N одноразовых кодов для курса → ученик вводит код и получает доступ
- [ ] **Срок доступа:** поле `expiresAt` в `CourseEnrollment` + автоблокировка по дате
- [ ] **Категории курсов:** таблица `Category`, поле `categoryId` в `Course`, фильтрация в списке
- [ ] **Расширенный энролл:** Admin может дать доступ к нескольким курсам сразу (пакеты)
- [ ] **История доступа:** лог выдачи/отзыва доступа (кто, когда, каким методом)
- [ ] **Страница активации** для ученика: `/activate` — ввод кода → редирект на курс
- [ ] **Расширенный энролл:** на странице ученика — дать доступ сразу к нескольким курсам
- [ ] **История доступа:** лог выдачи/отзыва (кто, когда, метод, примечание)
**Критерий готовности:** генерирую 10 ключей, отдаю ученику, ученик вводит — получает доступ с датой истечения через 3 месяца.
**Критерий готовности:** задаю ученику доступ к 3 курсам с разными сроками, в логе вижу все операции.
---