Доступ и роли
Ролевая система
Роли, права и проверки на сервере и в интерфейсе
Права описываются как «действие над сущностью», роли собираются из них в админке без деплоя. Одна и та же проверка работает и на сервере, и при отрисовке интерфейса, поэтому кнопка не может показаться тому, кому действие запрещено.
Что внутри
- Роли собираются из прав в интерфейсе, без правки кода
- Одна проверка для сервера и интерфейса
- Права на свои записи отдельно от прав на чужие
- Журнал выдачи и отзыва ролей
Что добавит в проект
Поверх общей базы — она уже даёт авторизацию, базу и интерфейс.
Таблицы в базе4
Маршруты2
Разбор архитектуры
Ключевое решение — проверка живёт в одном месте и вызывается из обоих слоёв. Когда прав два набора, серверный и клиентский, они расходятся: интерфейс показывает кнопку, сервер отвечает отказом. Права разделены на «над своим» и «над любым»: это покрывает почти все реальные случаи и не требует полноценного языка политик.
Общая база
Пустое, но рабочее приложение: авторизация, база, UI-кит и деплой уже собраны и связаны между собой. Модули не переписывают его файлы — они добавляют свои и регистрируются в готовых точках расширения, поэтому их можно ставить в любом сочетании.