feat(permissions): B6 — массовая выдача права классу (личный оверрайд всем ученикам)

POST /api/permissions/class/:id/bulk { permission, enabled } (admin, явный
requireRole) — выставляет user_permissions всем ученикам класса (1/0/null=сброс),
точечный token_version bump каждому. Валидация: только студенческие ключи.
Клиент LS.setClassPermission. В админке «Доступ · роли» — блок «Массово по
классу»: выбор класса → у каждого права «включить/выключить всем / сбросить».
Тест: оверрайд всем + сброс + отклонение teacher-ключа. Backend 221 pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-03 14:27:58 +03:00
parent 0b0c113181
commit b95b639e75
6 changed files with 118 additions and 3 deletions
+2
View File
@@ -1319,6 +1319,8 @@
<div class="perm-grid" id="perm-student"></div>
</div>
<div class="perm-role-block" id="perm-bulk"></div>
<div class="perm-role-block">
<div style="display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px">
<span style="font-weight:600">История изменений прав ролей</span>