Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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
Codeblock
languagephp
themeRDark
titleBeispiel
linenumberstrue
<?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]
        ];
    }
}