Dynamic RBAC
Ergänzt Payload v3 um datenbankgestützte Rollen und Berechtigungen, optional mit Bedingungen pro Dokument.
Installation
pnpm add payload-rbac-plugin Über
Das Plugin fügt Payload v3 eine rollenbasierte Zugriffskontrolle auf Basis von Berechtigungen hinzu, statt Rollen im Code fest abzufragen. Die Funktion `rbac()` wird in `plugins` registriert. Danach legt sie die Collections für Rollen und Berechtigungen an, deren Slugs konfigurierbar sind, und ergänzt die Auth-Collection (standardmäßig `users`) um ein `hasMany`-Feld `roles`. Dieses Feld wird mit `saveToJWT` ins JWT geschrieben, sodass Berechtigungsprüfungen die Rollen ohne zusätzliche Datenbankabfrage lesen können. Für Zugriffsregeln stehen `checkPermission(slug)` und `hasPermission(user, slug)` bereit. `checkPermission` gibt eine Access-Funktion zurück, die einer Collection-Operation zugewiesen wird. `hasPermission` eignet sich für eigene Endpunkte, Hooks oder UI-Logik. Eine Berechtigung kann Bedingungen enthalten, die in der Admin-UI definiert werden, etwa `sender equals {{user.id}}`. `checkPermission` übersetzt sie in eine Payload-`where`-Klausel. `getPermissionQuery(user, slug)` liefert dasselbe Ergebnis für manuelle Abfragen: `true`, `false` oder ein `where`-Objekt. Als Platzhalter stehen `{{user.id}}`, `{{user.roles}}`, `{{user.role}}` sowie die booleschen Werte `true` und `false` zur Verfügung. Einzelne Berechtigungen lassen sich in der Admin-UI anlegen. Der Bulk CRUD Generator erstellt für eine Collection in einem Speichervorgang die Berechtigungen `create`, `read`, `update` und `delete`. Seine Hilfsfelder werden nicht gespeichert. Über `rolesFields` und `permissionsFields` lassen sich die Schemata um eigene Felder erweitern. Mit `hideRoles` und `hidePermissions` steuert man die Sichtbarkeit in der Sidebar pro Benutzer. Die Optionen `rolesAccess` und `permissionsAccess` legen die Zugriffsregeln für die erzeugten Collections fest. Standardmäßig sind beide öffentlich, daher sollten sie vor dem Produktivbetrieb explizit überschrieben werden. Das Plugin setzt `payload` in der Version `^3.85.0` als Peer-Dependency voraus. Paketversion ist 1.1.0, Lizenz MIT. Ein `beforePermissionChange`-Hook liegt im Verzeichnis `src/hooks`, Unit- und Integrationstests laufen mit Vitest.
Paketinformationen
- Paketname
payload-rbac-plugin- Neueste Version
1.1.0- Entpackte Größe
- 91 kB
- Lizenz
- MIT
- Wöchentliche Downloads
- 3
- Zuletzt veröffentlicht
- 8. Juni 2026
Mehr von Mhmod-Hsn
Profil ansehenDictionary (Database Translations)
Verwaltet UI-Texte als lokalisierte Payload-Collection, die Next.js über einen gecachten Helper ausliest.
Advanced Sidebar
Ergänzt die Payload-Admin-Sidebar um Lucide-Icons, eigene Gruppen und zusätzliche Navigationslinks, ohne die Collection-Konfiguration anzufassen.
Social Auth
Ergänzt das Payload-v3-Admin-Login um OAuth-Anmeldung über GitHub, Google, Facebook, Twitter und LinkedIn.
Ähnliche Plugins
Mehr in AuthSimple Social Login
Erweitert das Payload-Admin-Panel um OAuth-Login mit Google und Microsoft (Entra ID).
Better Auth
Bietet Authentifizierungslösungen für Payload CMS.
TOTP
Fügt TOTP zur Multi-Faktor-Authentifizierung in PayloadCMS hinzu.
Passkey
Ergänzt Payload CMS um WebAuthn-Passkey-Login und Verwaltung über Better Auth.
Subscribers
Verwaltet Abonnenten und Kanäle mit Authentifizierung über Magic Links.
Keycloak SSO
Ergänzt Payload CMS 3 um Keycloak SSO über eine OIDC-Auth-Strategie mit PKCE, Silent Token Refresh und berechtigungsbasierter Zugriffskontrolle.