Permissions
Die Permissions im SetaFramework bestehen grundsätzlich aus 3 verschiedenen Teilen:
- ResourceDefinition - Stellt eine Ressource dar zu der Rechte benötigt werden um bestimmte Aktionen auszuführen.
- Role - Stellt eine Gruppe dar zu die Rechte erteilt bekommt.
- PermissionControl - Stellt einen User dar der Rechte erteilt bekommt, kann Teil einer oder mehrere Rollen sein.
Hier ein kleines Konfigurationsbeispiel:
PHP
/** * Konfiguration */ $resource = new ResourceDefinition(SomeClass::class, ['read', 'write', 'delete']); $userRole = new Role('User'); $userRole->allow($resource, 'read'); $adminRole = new Role('Admin', $userRole); $adminRole->allow($resource, 'write'); $permissionControl = new PermissionControl(); $permissionControl->addRole($adminRole); $permissionControl->allow( $resource, [ 'delete' => function (?SomeClass $someClassObject): bool { if ($someClassObject === null) { return false; } return $someClassObject->parent === 13; } ] ); /** * Verwendung */ $permissionControl->requirePermission($someClassObject, 'read');
