src/EventSubscriber/UserSubscriber.php line 49

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Event\CleanedOldPasswordEvent;
  4. use App\Event\CreatedUserEvent;
  5. use App\Event\DeactivedUserEvent;
  6. use App\Service\MailService;
  7. use Psr\Log\LoggerInterface;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
  10. use Twig\Error\LoaderError;
  11. use Twig\Error\RuntimeError;
  12. use Twig\Error\SyntaxError;
  13. class UserSubscriber implements EventSubscriberInterface
  14. {
  15.     /** @var LoggerInterface $logger */
  16.     protected $logger;
  17.     /** @var MailService $mailer */
  18.     protected $mailer;
  19.     /**
  20.      * UserSubscriber constructor.
  21.      * @param LoggerInterface $userLogger
  22.      * @param MailService $mailer
  23.      */
  24.     public function __construct(LoggerInterface $userLoggerMailService $mailer)
  25.     {
  26.         $this->logger $userLogger;
  27.         $this->mailer $mailer;
  28.     }
  29.     /**
  30.      * @return array
  31.      */
  32.     public static function getSubscribedEvents(): array
  33.     {
  34.         return [
  35.             DeactivedUserEvent::class => 'onDeactivedUser',
  36.             CleanedOldPasswordEvent::class => 'onCleanedOldPassword',
  37.             CreatedUserEvent::class => 'onCreatedUser'
  38.         ];
  39.     }
  40.     /**
  41.      * @param DeactivedUserEvent $event
  42.      */
  43.     public function onDeactivedUser(DeactivedUserEvent $event)
  44.     {
  45.         $user $event->getUser();
  46.         $this->logger->info('La cuenta de ' $user->getUsername() . ' ha caducado');
  47.     }
  48.     /**
  49.      * @param CleanedOldPasswordEvent $event
  50.      */
  51.     public function onCleanedOldPassword(CleanedOldPasswordEvent $event)
  52.     {
  53.         $user $event->getUser();
  54.         $this->logger->info('El usuario ' $user->getUsername() . ' tiene una contraseƱa que puede volver a usar');
  55.     }
  56.     /**
  57.      * @param CreatedUserEvent $event
  58.      * @throws LoaderError
  59.      * @throws RuntimeError
  60.      * @throws SyntaxError
  61.      * @throws TransportExceptionInterface
  62.      */
  63.     public function onCreatedUser(CreatedUserEvent $event)
  64.     {
  65.         $this->mailer->createdUserToUser($event->getUser(), $event->getPlainPassword());
  66.     }
  67. }