src/Listener/AccessCodeListener.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Listener;
  3. use App\Entity\User;
  4. use App\Event\AccessCodeEvent;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. class AccessCodeListener
  7. {
  8.     public function __construct(private EntityManagerInterface $em){}
  9.     public function onAccessCodeDisabled(AccessCodeEvent $event)
  10.     {
  11.         $accessCode $event->getAccessCode();
  12.         $user $this->em->getRepository(User::class)->findOneBy(['clinicCode' => $accessCode->getCode()]);
  13.         if($user) {
  14.             $user->setSubscriptionType(User::USER_SUBSCRIPTION_TYPE_NOSUB);
  15.             $user->setCurrentClinic(null);
  16.             $user->setClinicCode(null);
  17.             $this->em->persist($user);
  18.             $this->em->flush();
  19.         }
  20.     }
  21.     public function onAccessCodeExpired(AccessCodeEvent $event)
  22.     {
  23.         $accessCode $event->getAccessCode();
  24.         $user $this->em->getRepository(User::class)->findOneBy(['clinicCode' => $accessCode->getCode()]);
  25.         if($user) {
  26.             $user->setSubscriptionType(User::USER_SUBSCRIPTION_TYPE_NOSUB);
  27.             $user->setCurrentClinic(null);
  28.             $user->setClinicCode(null);
  29.             $this->em->persist($user);
  30.             $this->em->flush();
  31.         }
  32.     }
  33. }