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');
