diff --git a/plans/permissions-rework/PHASE_C_DESIGN.md b/plans/permissions-rework/PHASE_C_DESIGN.md index 1b06071..d9c4b4d 100644 --- a/plans/permissions-rework/PHASE_C_DESIGN.md +++ b/plans/permissions-rework/PHASE_C_DESIGN.md @@ -50,3 +50,13 @@ requireRole. Затем, если нужно, **Вариант 2** для одн и C11 — только под явный запрос (большой рефактор аутентификации). > Реализация — на ветке `feature/custom-roles`. Сначала выбрать вариант/конкретную роль. + +## Прогресс Phase C (2026-06-03, ветка feature/custom-roles) +- [x] C-1 фундамент: таблица roles + effectiveRoles (наследование гейтов) — миграция 054 +- [x] C-2 назначение: users.custom_role + updateRole + authMiddleware — миграция 055 +- [x] C-3 пер-ролевые права: релакс CHECK role_permissions + isEnabled(customRole, фолбэк база) — миграция 056 +- [x] C-4a API ролей: /api/roles CRUD + засев из базы + setPermission для кастомных +- [x] C-4b UI: конструктор ролей во вкладке «Доступ · роли» + выпадающий список ролей у пользователя +- PHASE C (произвольные кастомные роли) ЗАВЕРШЕНА на ветке. Тесты: custom-roles 8/8, roles-api 5/5, permissions 17/17, full backend в рамках baseline. +- Влить в master после ревью/проверки в браузере (на ветке: перезапустить сервер → код ветки). Миграции 054-056 уже в общей БД (обратносовместимы с master). +- C-10 (делегирование учителю) и C-11 (пер-классовый скоуп прав) из исходного дизайна — НЕ делались (был выбран вариант «произвольные роли»).