Versionen im Vergleich

Schlüssel

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

...

Die Tokens eines Anwenders werden immer und automatisch allen Datensätzen zugewiesen, die der Anwender anlegt (anonym oder authentifiziert). Es muss mindestens ein aktives Token-Schema existieren. Um zu verhindern dass die Tokens automatisch zu einem bestimmten Entity zugewiesen werden, existiert das Event OnAddDatasetTokenEvent

Beispiel
Codeblock
languagephp
themeRDark
titleBeispiel
linenumberstrue
<?php

namespace Brandbox\App\PackageNamespace\PackageName\Lib\Subscriber {

    use Brandbox\Framework\Brandbox\Role;
    use Brandbox\Framework\Brandbox\Event;

    class BrandboxRoleSubscriber extends Event\EventSubscriberAbstract
    {
       public const PRIORITY = 300;

        private const NON_TOKEN_IDENTIFIER = [
            'YourEntityIdentifier'
        ];

        public static function getSubscribedEvents(): array
        {
            return [
                 Role\Lib\Event\OnAddDatasetTokenEvent::NAME => [
                      ['onAddDatasetToken', self::PRIORITY]
                 ],
                 Role\Lib\Event\OnAddUserTokenEvent::NAME => [
                      ['onAddUserTokenEvent', self::PRIORITY]
                 ]
            ];
        }

        public function onAddDatasetToken(Role\Lib\Event\OnAddDatasetTokenEvent $event): void
        {
            $isSuperAuthorized = $this
                ->getApplicationConfig()
                ->isSuperAuthorized()
            ;

            if ($isSuperAuthorized
            || in_array($event->getIdentifier(), self::NON_TOKEN_IDENTIFIER)
            ) {
                $event->setTokenIDs([]);
                $event->stopPropagation();
            }
        }

        public function onAddUserTokenEvent(Role\Lib\Event\OnAddUserTokenEvent $event): void
        {
            $isSuperAuthorized = $this
                ->getApplicationConfig()
                ->isSuperAuthorized()
            ;

            if ($isSuperAuthorized) {
                $event->setTokenIDs([]);
                $event->stopPropagation();
            }
        }
    }
}

...