feat(access): Фаза 1a — видимость симуляций по классам (добавочная модель)

Миграция 051: расширяет content_access.content_type на 'course'/'sim' (пересборка
таблицы — SQLite не умеет ALTER CHECK) + мост «открыть все включённые симуляции
всем существующим классам» → текущее поведение не меняется. GET /api/lab/sims
теперь фильтрует список для НЕпривилегированных по allowedRefs(uid,'sim'); admin/
teacher видят все. Ролевой simulations.access остаётся «модуль вкл.» (добавочно).
Тесты: lab-access (4/4, allowlist+класс+личное), lab-sims переведён на admin для
проверки полного каталога (видимость ученика — в lab-access). /api/lab в харнессе.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Maxim Dolgolyov
2026-06-03 13:19:29 +03:00
parent 16d0f91622
commit 9a145e5d62
5 changed files with 115 additions and 9 deletions
+1
View File
@@ -45,6 +45,7 @@ app.use('/api/questions', require('../src/routes/questions'));
// Additional routes for integration tests
app.use('/api/permissions', require('../src/routes/permissions'));
app.use('/api/access', require('../src/routes/access'));
app.use('/api/lab', require('../src/routes/lab'));
// Feature-gated routes (requireFeature checks app_settings in DB)
const { requireFeature } = require('../src/middleware/features');