Autorisierungen konfigurieren
Die Schemata für Autorisierungen werden von der jeweiligen App mit ausgeliefert. Das Schema enthält alle Einstellungen für die Zugriffsverwaltung der Daten und der Ressourcen. Lesen Sie hier wie Sie der Rolle eine Autorisierung zuordnen.
Aufbau einer Autorisierung
Es gibt zwei unterschiedliche Typen von Rechten die in einem Autorisierungsschema zusammengefasst werden:
Rechte für Datensätze/Tabellen
Rechte für Ressourcen
Das Autorisierungsschema wird in einer PHP-Datei gespeichert. Die Datei kann dann bei der Rolle ausgewählt werden. Im nachfolgenden Beispiel wird...
... ein Entity mit den vollen Zugriffsrechten (create, read, update, delete, grantAccess, allDatasets) ausgestattet
... ein Controller (Package\Engine::class) für alle Endpoints freigegeben
... die Methode „methodName“ für den Zugriff über alle Endpoints gesperrt
Beispiel
<?php
namespace Brandbox\App\Main\RoleScheme {
use Brandbox\Framework\Brandbox\Composer;
use Brandbox\Framework\Brandbox\Role;
use Brandbox\App\Your\Package;
class AdminScheme implements Role\Lib\Scheme\RoleSchemeInterface
{
public const NAME = 'Demo-Schema';
private const PACKAGE_POLICY_FULL = Composer\PackageFeature::POLICY_FULL;
private const PACKAGE_POLICY_BLACKLIST = ['endpoints' => [], 'blacklist' => self::PACKAGE_POLICY_FULL];
private const TABLE_POLICY_FULL = Role\RoleManager::POLICY_FULL;
public const TABLE_AUTHORISATIONS = [
Lib\Entity\YourEntity::class => self::TABLE_POLICY_FULL
];
public const CLASS_AUTHORISATIONS = [
Package\Engine::class => ['endpoints' => self::PACKAGE_POLICY_FULL]
];
public const METHOD_AUTHORISATIONS = [
Package\Engine::class => ['methodName' => self::PACKAGE_POLICY_BLACKLIST]
];
}
}