Commit 7906ee77 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] HistoriqueListener : prise en compte nécessaire du paramètre de config 'user_entity_class'.

parent b0cb8479
Loading
Loading
Loading
Loading
+12 −7
Original line number Diff line number Diff line
@@ -11,9 +11,6 @@ use Exception;
use RuntimeException;
use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface;
use UnicaenUtilisateur\Entity\Db\AbstractUser;
use UnicaenUtilisateur\Entity\Db\User;
use UnicaenUtilisateur\Entity\Db\UserInterface;
use UnicaenUtilisateur\Service\User\UserServiceAwareTrait;
use Laminas\Authentication\AuthenticationService;

/**
@@ -31,10 +28,18 @@ use Laminas\Authentication\AuthenticationService;
 */
class HistoriqueListener implements EventSubscriber
{
    use UserServiceAwareTrait;
    
    private string $userEntityClass;
    private ?int $defaultUser = null;
    public function setDefaultUser(?int $user) { $this->defaultUser = $user; }

    public function setUserEntityClass(string $userEntityClass): void
    {
        $this->userEntityClass = $userEntityClass;
    }

    public function setDefaultUser(?int $user): void
    {
        $this->defaultUser = $user;
    }
    
    /**
     * @var AuthenticationService
@@ -90,7 +95,7 @@ class HistoriqueListener implements EventSubscriber
        if (null === $user) {
            if (isset($this->defaultUser)) {
                $em = $args->getObjectManager();
                $user = $em->getRepository(User::class)->find($this->defaultUser);
                $user = $em->getRepository($this->userEntityClass)->find($this->defaultUser);
            }
        }
        if (null === $user) {
+12 −22
Original line number Diff line number Diff line
@@ -3,38 +3,28 @@
namespace UnicaenUtilisateur\ORM\Event\Listeners;

use Interop\Container\ContainerInterface;
use Laminas\ServiceManager\FactoryInterface;
use Laminas\ServiceManager\ServiceLocatorInterface;
use Laminas\Authentication\AuthenticationService;
use UnicaenUtilisateur\Entity\Db\User;
use UnicaenUtilisateur\Service\User\UserService;

class HistoriqueListenerFactory implements FactoryInterface
{
    public function createService(ServiceLocatorInterface $serviceLocator)
    {
        return $this->__invoke($serviceLocator, '?');
    }

    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
class HistoriqueListenerFactory
{
    /**
         * @var AuthenticationService $authenticationService
         * @var UserService $userService
     * @throws \Psr\Container\NotFoundExceptionInterface
     * @throws \Psr\Container\ContainerExceptionInterface
     */
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null): HistoriqueListener
    {
        /** @var AuthenticationService $authenticationService */
        $authenticationService = $container->get('Laminas\Authentication\AuthenticationService');
//        $userService = $container->get(UserService::class);
//        $authenticationService = $userService->getAuthenticationService();

        /** @var UserService $userService */
        $config = $container->get('Configuration')['unicaen-utilisateur'];
        $userId = isset($config['default-user'])?$config['default-user']:null;
//        $user = isset($config['default-user'])?($em->find($config['default-user'])):null;
        $config = $container->get('Configuration');
        $userEntityClass = $config['zfcuser']['user_entity_class'] ?? User::class;
        $userId = $config['unicaen-utilisateur']['default-user'] ?? null;

        $listener = new HistoriqueListener();
        $listener->setAuthenticationService($authenticationService);
        $listener->setUserEntityClass($userEntityClass);
        $listener->setDefaultUser($userId);
//        $listener->setDefaultUser($user);

        return $listener;
    }