Warding

RBAC-Plugin, das `user`- und `role`-Collections generiert und Zugriffskontrolle auf Collections, Globals, Felder und Endpunkte injiziert.

Community 17 7/Wo. MIT v0.1.10

Installation

pnpm add payload-warding

Über

Das Plugin erzeugt zur Build-Zeit eine `user`- und eine `role`-Collection für rollenbasierte Zugriffskontrolle in Payload 2.x (Peer-Dependency `payload ^2.1.0`). Es durchsucht alle Collections, Globals, Felder und Endpunkte der Konfiguration und leitet daraus Features ab. Jedes Feature besteht aus einem Slug, den zugehörigen Traits (Feldnamen oder Endpunktpfade) und Verben (`create`, `read`, `update`, `delete`). Rollen werden als Kombinationen dieser Features definiert und lassen sich über die Admin-Oberfläche bearbeiten, indem Features, Traits und Verben ausgewählt werden. Auf Collections, Globals und einzelnen Feldern injiziert das Plugin `access`-Funktionen. Die `access.create`-Funktion einer Collection prüft den Slug der Collection mit dem Verb `create`. Die `access.update`-Funktion eines Feldes prüft den Collection-Slug, den Feldnamen als Trait und das Verb `update`. Endpunkte erhalten einen `check`-Handler, der dem Handler-Array vorangestellt wird. Das Verb ergibt sich aus der HTTP-Methode: `post` entspricht `create`, `get`, `head` und `options` entsprechen `read`, `put` und `patch` entsprechen `update`, `delete` entspricht `delete`. Auth-fähige Collections erhalten zusätzlich `admin`- und `unlock`-Prüfungen. Collections, Globals, Felder oder Endpunkte lassen sich gezielt ausschließen, indem `custom.warding.should` auf `false` gesetzt wird oder pro Verb `custom.warding.should.[verb]` deaktiviert wird. Wird eine eigene Access-Funktion übergeben, hängt das Plugin den generierten Check an `req.context.warding` an, sodass er manuell aufgerufen werden kann. Die `mod`-Option erlaubt ein Umschreiben der erzeugten Collections und des Wardens vor der Rückgabe. Über `ext` lassen sich eigene Features registrieren, die nicht direkt auf eine Collection oder ein Global abgebildet sind. Weitere Optionen sind `root`, `user`, `role`, `label` und `mute` (Plugin deaktivieren). Bei der Initialisierung kann das Plugin eine `root`-Rolle mit allen Berechtigungen und optional einen `root`-User anlegen. Wird kein Seeding durchgeführt, wird der erste User, der über die create-first-user-Seite angelegt wird, automatisch der `root`-Rolle zugeordnet. Die Standard-Labels liegen auf Englisch und Chinesisch vor.

Paketinformationen

Paketname
payload-warding
Neueste Version
0.1.10
Entpackte Größe
127 kB
Lizenz
MIT
Wöchentliche Downloads
7
Zuletzt veröffentlicht
14. Nov. 2023

Ähnliche Plugins

Mehr in Auth