feat(access): доступ к учебникам и экзаменам по классам/ученикам из админ-панели
Модель allowlist (закрыто по умолчанию), правило ученика важнее класса. Управляют админ (все) и учителя (свои классы/ученики). - миграция 040: таблица content_access + непрерывный переход (всем существующим классам открыт текущий контент) - сервис contentAccess: резолвинг доступа, главы наследуют хаб - API /api/access (catalog/targets/rules) для admin+teacher - гейты: каталог учебников, router.param slug/examKey, фильтр tracks - клиентские редиректы на /403 (textbook-tracker, exam-prep boot) - раздел админки «Доступ к учебникам»: классы + ученики (tri-state) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -63,7 +63,10 @@
|
||||
fetch('/api/textbooks/' + slug, {
|
||||
headers: { 'Authorization': 'Bearer ' + LS.getToken() },
|
||||
})
|
||||
.then(r => r.ok ? r.json() : null)
|
||||
.then(r => {
|
||||
if (r.status === 403) { window.location.replace('/403'); return null; }
|
||||
return r.ok ? r.json() : null;
|
||||
})
|
||||
.then(d => {
|
||||
if (!d || !d.progress) return;
|
||||
const serverRead = new Set(d.progress.read || []);
|
||||
|
||||
Reference in New Issue
Block a user