diff --git a/src/Event/PersonUserItemPreEvent.php b/src/Event/PersonUserItemPreEvent.php new file mode 100644 index 0000000000000000000000000000000000000000..63097cb634183d0c09642c009f9c5c0d007e4cc7 --- /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 245d3d30f6ae4d6b127ca9581c5591c889b7c8e5..8b68ca64eb185ee748646af1321d8dba8cf9fbcb 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);