Versionen im Vergleich

Schlüssel

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

...

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
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]
        ];
    }
}

...