Files
Learn_System/backend/src/db/migrations/053_user_permission_expiry.sql
T
Maxim Dolgolyov a250d15f9a feat(permissions): B8 — временные права (expires_at) с авто-снятием
Миграция 053: user_permissions.expires_at (NULL = бессрочно). Резолвер isEnabled
+ /me + /users/:id игнорируют просроченные оверрайды (наследуют роль); seedDefaults
чистит просроченные строки. setUserPermission принимает days → выдаёт право на
срок (datetime('now','+N days')). API отдаёт expiresAt. Клиент: setUserPermission(...,days).
В модалке прав пользователя — бейдж «до ДАТА» + кнопка «врем.» (выдать на N дней).
Тест: срок хранится/отдаётся, просроченное игнорируется и вычищается. Backend pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 14:43:06 +03:00

7 lines
491 B
SQL

-- 053_user_permission_expiry.sql
-- Временные права (B8): личный оверрайд может иметь срок действия. По истечении
-- срока он перестаёт учитываться (резолвер фильтрует по expires_at) и периодически
-- удаляется. NULL = бессрочно (как и было). Время в UTC ('YYYY-MM-DD HH:MM:SS').
ALTER TABLE user_permissions ADD COLUMN expires_at TEXT;