From b9b86a36560078c824ea7b367656831c71b723d8 Mon Sep 17 00:00:00 2001 From: Maxim Dolgolyov Date: Wed, 3 Jun 2026 15:27:21 +0300 Subject: [PATCH] =?UTF-8?q?docs(permissions):=20Phase=20C=20(=D0=BA=D0=B0?= =?UTF-8?q?=D1=81=D1=82=D0=BE=D0=BC=D0=BD=D1=8B=D0=B5=20=D1=80=D0=BE=D0=BB?= =?UTF-8?q?=D0=B8)=20=D0=B7=D0=B0=D0=B2=D0=B5=D1=80=D1=88=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B0=20=D0=B2=D0=B5=D1=82=D0=BA=D0=B5=20?= =?UTF-8?q?=E2=80=94=20=D0=BF=D1=80=D0=BE=D0=B3=D1=80=D0=B5=D1=81=D1=81=20?= =?UTF-8?q?C-1..C-4b?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- plans/permissions-rework/PHASE_C_DESIGN.md | 10 ++++++++++ 1 file changed, 10 insertions(+) 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 (пер-классовый скоуп прав) из исходного дизайна — НЕ делались (был выбран вариант «произвольные роли»).