Все шаблоны

Доступ и роли

Ролевая система

Роли, права и проверки на сервере и в интерфейсе

Среднийролиправаrbacдоступ

Права описываются как «действие над сущностью», роли собираются из них в админке без деплоя. Одна и та же проверка работает и на сервере, и при отрисовке интерфейса, поэтому кнопка не может показаться тому, кому действие запрещено.

Что внутри

  • Роли собираются из прав в интерфейсе, без правки кода
  • Одна проверка для сервера и интерфейса
  • Права на свои записи отдельно от прав на чужие
  • Журнал выдачи и отзыва ролей

Что добавит в проект

Поверх общей базы — она уже даёт авторизацию, базу и интерфейс.

Таблицы в базе4

rolespermissionsrole_permissionsuser_roles

Маршруты2

/admin/roles/api/roles

Разбор архитектуры

Ключевое решение — проверка живёт в одном месте и вызывается из обоих слоёв. Когда прав два набора, серверный и клиентский, они расходятся: интерфейс показывает кнопку, сервер отвечает отказом. Права разделены на «над своим» и «над любым»: это покрывает почти все реальные случаи и не требует полноценного языка политик.

Общая база

Пустое, но рабочее приложение: авторизация, база, UI-кит и деплой уже собраны и связаны между собой. Модули не переписывают его файлы — они добавляют свои и регистрируются в готовых точках расширения, поэтому их можно ставить в любом сочетании.

Next.js 16 (App Router)TypeScriptPostgreSQL + Drizzle ORMAuth.jsTailwind CSS + shadcn/uiDocker