Commit f7fdb65c authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

debut de bricolage autour du listener

parent 4ed2dc7d
Loading
Loading
Loading
Loading
+7 −8
Changes for src/UnicaenUtilisateur/ORM/Event/Listeners/HistoriqueListener.php: 7 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -8,11 +8,12 @@ use Doctrine\ORM\Event\LifecycleEventArgs;
use Doctrine\ORM\Event\PreUpdateEventArgs;
use Doctrine\ORM\Events;
use Exception;
use Laminas\Authentication\AuthenticationService;
use RuntimeException;
use UnicaenUtilisateur\Entity\HistoriqueAwareInterface;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenUtilisateur\Entity\Db\AbstractUser;
use UnicaenUtilisateur\Service\User\UserServiceAwareTrait;
use Laminas\Authentication\AuthenticationService;
use UnicaenUtilisateur\Entity\HistoriqueAwareInterface;
use UnicaenUtilisateur\Service\User\UserService;

/**
 * Listener Doctrine.
@@ -29,7 +30,7 @@ use Laminas\Authentication\AuthenticationService;
 */
class HistoriqueListener implements EventSubscriber
{
    use UserServiceAwareTrait;
    use EntityManagerAwareTrait;

    /**
     * @var AuthenticationService
@@ -76,10 +77,8 @@ class HistoriqueListener implements EventSubscriber
        // on tente d'abord d'obtenir l'utilisateur connecté pour en faire l'auteur de la création/modification.
        $user = $this->getAuthenticatedUser();
//         si aucun utilisateur connecté n'est disponible, on utilise l'éventuel auteur existant
        if (null === $user) {
            $user = $entity->getHistoCreateur();
        }
        // si nous ne disposons d'aucun utilisateur, basta!
        if (null === $user) $user = $entity->getHistoCreateur();
//        if (null === $user) $user = $this->authenticationService->getEntityManager()->getRepository(UserService::class)->find(0);
        if (null === $user) {
            throw new RuntimeException("Aucun utilisateur disponible pour en faire l'auteur de la création/modification.");
        }
+2 −2
Changes for src/UnicaenUtilisateur/ORM/Event/Listeners/HistoriqueListenerFactory.php: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -3,10 +3,9 @@
namespace UnicaenUtilisateur\ORM\Event\Listeners;

use Interop\Container\ContainerInterface;

use Laminas\Authentication\AuthenticationService;
use Laminas\ServiceManager\FactoryInterface;
use Laminas\ServiceManager\ServiceLocatorInterface;
use Laminas\Authentication\AuthenticationService;

/**
 * Description of MouchardServiceFactory
@@ -29,6 +28,7 @@ class HistoriqueListenerFactory implements FactoryInterface

        $listener = new HistoriqueListener();
        $listener->setAuthenticationService($authenticationService);
        //$listener->setEntityManager($entityManager);

        return $listener;
    }
+19 −0
Changes for src/UnicaenUtilisateur/Service/User/UserService.php: 19 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ class UserService implements RechercheIndividuServiceInterface
     */
    private $authenticationService;

    private ?string $applicationUsername;

    /**
     * @param string $userEntityClass
@@ -76,6 +77,24 @@ class UserService implements RechercheIndividuServiceInterface
        $this->authenticationService = $authenticationService;
    }

    /**
     * @return string|null
     */
    public function getApplicationUsername(): ?string
    {
        return $this->applicationUsername;
    }

    /**
     * @param string|null $applicationUsername
     * @return UserService
     */
    public function setApplicationUsername(?string $applicationUsername): UserService
    {
        $this->applicationUsername = $applicationUsername;
        return $this;
    }

    /**
     * @return EntityRepository
     */
+1 −0
Changes for src/UnicaenUtilisateur/Service/User/UserServiceFactory.php: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ class UserServiceFactory
        $service->setRoleService($roleService);
        $service->setServiceUserContext($userContext);
        $service->setUserEntityClass($allConfig['zfcuser']['user_entity_class'] ?? User::class);
        $service->setApplicationUsername($allConfig['unicaen-utilisateur']['application-username']);
        $service->setAuthenticationService($authenticationService);

        return $service;