grendervill
|
a5205cc054
|
feat(store,permissions): схема Фазы 1, доступ к данным и движок прав
- миграция 00002: users, sessions, totp_secrets, webauthn_credentials,
security_events, guilds, guild_members, roles, member_roles, channels,
channel_overrides, audit_log + дефолтные instance_settings (AGENT.md 6.1)
- internal/store: Snowflake-идентификаторы, CRUD пользователей и сессий
(ротация, step-up, logout-all), TOTP и события безопасности, серверы,
участники, роли, комнаты и оверрайды, настройки инстанса и аудит
- internal/permissions: 37 прав битмаской, вычисление по правилам §6.2
(баз role @user → оверрайды ролей → оверрайд пользователя → ADMINISTRATOR),
иерархия ролей и участников, тайм-ауты, обход для инстанс-админа, LRU-кэш
с инвалидацией
- internal/source: адаптер permissions.Source поверх store
- тесты: 18 unit-тестов прав + интеграционный набор на реальной SQLite
(приватная комната, модератор, владелец, инстанс-админ, тайм-аут)
- golangci: обоснованное исключение gosec для пакета store (конверсии
Snowflake и сборка SQL из константных шаблонов)
|
2026-09-19 21:24:17 +03:00 |
|