From eb8e487d8102d391812ead7bf054b4c6c9a34fc7 Mon Sep 17 00:00:00 2001 From: Patrizio Bekerle <patrizio@bekerle.com> Date: Thu, 20 Jan 2022 08:19:32 +0100 Subject: [PATCH] Add PersonUserItemPreEvent --- src/Event/PersonUserItemPreEvent.php | 30 ++++++++++++++++++++++++++++ src/Service/LDAPApi.php | 5 +++++ 2 files changed, 35 insertions(+) create mode 100644 src/Event/PersonUserItemPreEvent.php diff --git a/src/Event/PersonUserItemPreEvent.php b/src/Event/PersonUserItemPreEvent.php new file mode 100644 index 0000000..63097cb --- /dev/null +++ b/src/Event/PersonUserItemPreEvent.php @@ -0,0 +1,30 @@ +<?php + +declare(strict_types=1); + +namespace Dbp\Relay\BasePersonConnectorLdapBundle\Event; + +use Adldap\Models\User; +use Symfony\Contracts\EventDispatcher\Event; + +class PersonUserItemPreEvent extends Event +{ + public const NAME = 'dbp.relay.base_person_connector_ldap_bundle.person_user_item.pre'; + + protected $identifier; + + public function __construct(string $identifier) + { + $this->identifier = $identifier; + } + + public function getIdentifier(): string + { + return $this->identifier; + } + + public function setIdentifier(string $identifier): void + { + $this->identifier = $identifier; + } +} diff --git a/src/Service/LDAPApi.php b/src/Service/LDAPApi.php index 245d3d3..8b68ca6 100644 --- a/src/Service/LDAPApi.php +++ b/src/Service/LDAPApi.php @@ -18,6 +18,7 @@ use Dbp\Relay\BasePersonBundle\Entity\Person; use Dbp\Relay\BasePersonConnectorLdapBundle\Event\PersonForExternalServiceEvent; use Dbp\Relay\BasePersonConnectorLdapBundle\Event\PersonFromUserItemPostEvent; use Dbp\Relay\BasePersonConnectorLdapBundle\Event\PersonFromUserItemPreEvent; +use Dbp\Relay\BasePersonConnectorLdapBundle\Event\PersonUserItemPreEvent; use Dbp\Relay\CoreBundle\API\UserSessionInterface; use Dbp\Relay\CoreBundle\Exception\ApiError; use Dbp\Relay\CoreBundle\Helpers\Tools as CoreTools; @@ -219,6 +220,10 @@ class LDAPApi implements LoggerAwareInterface, ServiceSubscriberInterface public function getPersonUserItem(string $identifier): ?User { + $preEvent = new PersonUserItemPreEvent($identifier); + $this->dispatcher->dispatch($preEvent, PersonUserItemPreEvent::NAME); + $identifier = $preEvent->getIdentifier(); + try { $provider = $this->getProvider(); $builder = $this->getCachedBuilder($provider); -- GitLab