src/Listener/ChangePasswordListener.php line 39

Open in your IDE?
  1. <?php
  2. namespace App\Listener;
  3. use App\Entity\Users;
  4. use Symfony\Component\Security\Core\SecurityContext;
  5. use Doctrine\ORM\EntityManager;
  6. //use Symfony\Component\HttpKernel\Event\GetResponseEvent;
  7. use Symfony\Component\HttpKernel\Event\RequestEvent;
  8. use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface;
  9. use Symfony\Component\DependencyInjection\ContainerInterface;
  10. use DateTime;
  11. /**
  12.  * Listener que actualiza la last activity de cada usuario autenticado
  13.  */
  14. class ChangePasswordListener
  15. {
  16.     protected $container;
  17.     protected $context;
  18.     protected $em;
  19.     protected $encoderFactory;
  20. public function __construct(ContainerInterface $containerEntityManager $emEncoderFactoryInterface $encoderFactory)
  21.     {
  22.         $this->container $container;
  23.         $this->em $em;
  24.         $this->encoderFactory $encoderFactory;
  25.     }
  26.     /**
  27.      * En cada request vamos a chequear si el password el usuario es igual al predeterminado
  28.      *
  29.      * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent; $event
  30.      * @return void
  31.      */
  32.     public function onKernelRequest(RequestEvent $event)
  33.     {    
  34.         if ($this->container->get('security.token_storage')->getToken()) {
  35.         $user $this->container->get('security.token_storage')->getToken()->getUser();
  36.         if($user instanceof Users)
  37.         {
  38.             $encoder $this->encoderFactory->getEncoder($user);
  39.             //$encoder = $this->container -> get('security.encoder_factory') -> getEncoder($user);
  40.             $passwordCodificado $encoder -> encodePassword('veritas01'$user-> getSalt());
  41.             if($user->getPassword()==$passwordCodificado)
  42.             {
  43.                 $this->container->get('session')->getFlashBag()->set('danger''Antes de continuar debe actualizar su contraseƱa');
  44.                 $this->container->get('session')->set('reset''1');;
  45.             }else{
  46.                 $this->container->get('session')->set('reset''0');;
  47.             }
  48.         
  49.     }
  50.     }
  51.     }
  52. }