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