Warding
Плагин RBAC для Payload 2.x: генерирует коллекции user и role и добавляет проверку доступа к коллекциям, глобалам, полям и эндпоинтам.
Установка
pnpm add payload-warding Описание
Плагин добавляет ролевую модель доступа (RBAC) в Payload, генерируя коллекции `user` и `role` на этапе сборки. Он сканирует все коллекции, глобалы, поля и эндпоинты в конфигурации и строит набор фичей. Каждая фича представляет собой кортеж `{feature, traits, verbs}`, где feature это slug коллекции или глобала, traits содержат имена полей или пути эндпоинтов, а verbs определяют разрешённые действия: create, read, update, delete. Роли составляются из комбинаций этих фичей и настраиваются через страницу редактирования ролей в админ-панели. Плагин инжектит функции `access` в коллекции, глобалы и отдельные поля. Для коллекций функция `access.create` проверяет slug коллекции с глаголом create. Для полей `access.update` проверяет slug коллекции, имя поля как trait и глагол update. Эндпоинты получают обработчик `check`, который добавляется в начало массива обработчиков. Глагол выводится из HTTP-метода: post соответствует create, get, head и options соответствуют read, put и patch соответствуют update, delete соответствует delete. Для коллекций с включённой авторизацией добавляются проверки `admin` и `unlock`. Отключить проверку для конкретной коллекции, глобала, поля или эндпоинта можно через `custom.warding.should` или по отдельным глаголам через `custom.warding.should.[verb]`. Если вы передаёте собственную функцию доступа, плагин помещает сгенерированную проверку в `req.context.warding`, чтобы вы могли вызвать её вручную. Опция `mod` позволяет переписать сгенерированные коллекции и warden до их возврата, а `ext` регистрирует кастомные фичи, которые не привязаны к конкретной коллекции или глобалу. При инициализации плагин может создать root-роль со всеми привилегиями и опционального root-пользователя. Если инициализацию пропустить, первый пользователь, созданный через страницу create-first-user, автоматически привязывается к root-роли. Стандартные метки доступны на английском и китайском языках. Плагин работает с Payload 2.x (peer dependency `payload: ^2.1.0`).
О пакете
- Имя пакета
payload-warding- Последняя версия
0.1.10- Размер
- 127 кБ
- Лицензия
- MIT
- Загрузок в неделю
- 7
- Последняя публикация
- 14 нояб. 2023 г.
Похожие плагины
Ещё в категории «Авторизация»Simple Social Login
Плагин для Payload CMS 3.x: добавляет вход через Google и Microsoft (Entra ID) в админку и аутентифицированные коллекции.
Better Auth
Адаптер и плагины Better Auth для Payload CMS.
TOTP
Добавляет TOTP для многофакторной аутентификации в PayloadCMS.
Passkey
Добавляет вход через WebAuthn passkeys и управление ими в Payload CMS поверх Better Auth.
Subscribers
Управляйте подписчиками и каналами с помощью аутентификации по магической ссылке.
Keycloak SSO
Добавляет Keycloak SSO в Payload CMS 3 через OIDC-стратегию с PKCE, тихим обновлением токенов и доступом на основе permissions.