feat(access): вид «по классу», массовые действия, бейджи состояния + чистка orphan-правил
По итогам ревью системы прав: - админка: переключатель режимов «По контенту» / «По классу» - кнопки «Открыть всем классам» / «Закрыть у всех» (и зеркально по классу) - бейджи N/M (сколько классов открыто) в списке контента - эндпоинты /api/access/summary и /api/access/class/:id - вкладка «Доступ к учебникам» перенесена к «Права доступа» (группа Пользователи) - чистка content_access при удалении класса/ученика (нет FK) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+5
-18
@@ -956,9 +956,6 @@
|
||||
<button class="admin-nav-item" data-tab="topics" onclick="switchTab(this)">
|
||||
<i data-lucide="list-tree" style="width:15px;height:15px"></i> Темы
|
||||
</button>
|
||||
<button class="admin-nav-item" data-tab="access" onclick="switchTab(this)">
|
||||
<i data-lucide="book-lock" style="width:15px;height:15px"></i> Доступ к учебникам
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -974,6 +971,9 @@
|
||||
<button class="admin-nav-item" data-tab="permissions" onclick="switchTab(this)" id="btn-tab-permissions" style="display:none">
|
||||
<i data-lucide="shield" style="width:15px;height:15px"></i> Права доступа
|
||||
</button>
|
||||
<button class="admin-nav-item" data-tab="access" onclick="switchTab(this)">
|
||||
<i data-lucide="book-lock" style="width:15px;height:15px"></i> Доступ к учебникам
|
||||
</button>
|
||||
<button class="admin-nav-item" data-tab="avatars" onclick="switchTab(this);loadAvatarRequests()">
|
||||
<i data-lucide="image" style="width:15px;height:15px"></i> Аватары
|
||||
<span class="admin-badge" id="av-badge" style="display:none"></span>
|
||||
@@ -1515,25 +1515,12 @@
|
||||
<!-- ── Доступ к учебникам / экзаменам ── -->
|
||||
<div class="tab-pane" id="tab-access">
|
||||
<div class="section-title">Доступ к учебникам и экзаменам</div>
|
||||
<p style="color:var(--muted);font-size:13px;margin:4px 0 16px;max-width:720px">
|
||||
<p style="color:var(--muted);font-size:13px;margin:4px 0 16px;max-width:760px">
|
||||
По умолчанию доступ <b>закрыт</b>. Откройте учебник или экзамен-модуль нужным классам.
|
||||
Внутри класса можно сделать точечное исключение для отдельного ученика —
|
||||
индивидуальное правило важнее правила класса.
|
||||
</p>
|
||||
<div class="acc-layout" style="display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap">
|
||||
<div class="acc-list adm-panel" style="flex:0 0 280px;max-width:320px;padding:10px">
|
||||
<div class="acc-list-head" style="font-weight:600;font-size:13px;color:var(--text-3);padding:6px 8px">Учебники</div>
|
||||
<div id="acc-textbooks"></div>
|
||||
<div class="acc-list-head" style="font-weight:600;font-size:13px;color:var(--text-3);padding:12px 8px 6px">Экзамены</div>
|
||||
<div id="acc-exams"></div>
|
||||
</div>
|
||||
<div class="acc-detail adm-panel" style="flex:1;min-width:340px;padding:18px">
|
||||
<div id="acc-detail-empty" style="color:var(--muted);font-size:14px">
|
||||
Выберите учебник или экзамен слева, чтобы настроить доступ.
|
||||
</div>
|
||||
<div id="acc-detail" style="display:none"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="acc-root"></div>
|
||||
</div>
|
||||
|
||||
<!-- ── Рассылка ── -->
|
||||
|
||||
Reference in New Issue
Block a user