...
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
Codeblock | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
<?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] ]; } } |
...