Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 2 Nächste Version anzeigen »

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]
        ];
    }
}
  • Keine Stichwörter