Gatekeeper

Плагин для Payload CMS v3, добавляющий ролевое управление доступом (RBAC): коллекция ролей, автоматическая генерация разрешений, wildcard-права.

Сообщество 25 270/нед MIT v1.1.0

Установка

pnpm add payload-gatekeeper

Описание

Плагин добавляет ролевое управление доступом (RBAC) в Payload CMS v3. При инициализации создаётся коллекция Roles (slug настраивается, по умолчанию "roles"), к выбранным пользовательским коллекциям привязывается поле связи с ролью. Разрешения описываются строками в точечной нотации, например `users.read` или `media.*`, а одиночная `*` покрывает все права и задаёт роль суперпользователя. Полный набор разрешений для каждой коллекции генерируется автоматически, поддерживать реестр вручную не нужно. Видимость коллекции в админ-панели и доступ к данным разделены: `collection.manage` отвечает за отображение в интерфейсе, а `collection.read`, `create`, `update`, `delete` за операции с записями. Неаутентифицированные запросы получают публичную роль, которая по умолчанию даёт право чтения на не-auth коллекциях. Auth-коллекции, включая пользователей, всегда закрыты от публичного доступа независимо от настроек публичной роли. Поле роли можно разместить в именованной вкладке, в боковой панели или по числовой позиции. Для новых пользователей задаётся роль по умолчанию, а первый пользователь в admin-коллекции может автоматически получить защищённую роль `super_admin`. Роли помечаются как `protected` для запрета редактирования, ограничиваются через `visibleFor` до нужных пользовательских коллекций и синхронизируются при инициализации в dev-режиме или при явном включении. Кастомные разрешения уровня приложения (например, `event-management.export`) регистрируются вместе со сгенерированными и группируются в редакторе ролей. Плагин работает с Payload 3.x и React 19, сборка в ESM и CJS. Проверки разрешений можно отключить флагом конфигурации, что удобно при сидировании и миграциях. Принадлежность конкретной записи (ownership) не проверяется, поэтому паттерны вроде "пользователь редактирует только свой профиль" нужно реализовывать отдельно.

О пакете

Имя пакета
payload-gatekeeper
Последняя версия
1.1.0
Размер
404 кБ
Лицензия
MIT
Загрузок в неделю
270
Последняя публикация
18 авг. 2025 г.