src/Controller/Client/ResettingController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Client;
  3. use App\Entity\Customer\Customer;
  4. use App\Events;
  5. use App\Repository\Customer\CustomerRepository;
  6. use EWZ\SymfonyAdminBundle\Event\ObjectEvent;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. use Symfony\Component\EventDispatcher\EventDispatcherInterface;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. /**
  13.  * @Route("/client/resetting")
  14.  */
  15. class ResettingController extends AbstractController
  16. {
  17.     /**
  18.      * Request reset user password: show form.
  19.      *
  20.      * @Route("/", name="client_resetting_request")
  21.      *
  22.      * @return Response
  23.      */
  24.     public function index(): Response
  25.     {
  26.         return $this->render('client/resetting/request.html.twig');
  27.     }
  28.     /**
  29.      * Request reset customer password: submit form and send email.
  30.      *
  31.      * @Route("/send-email", name="client_resetting_send_email", methods="POST")
  32.      *
  33.      * @param Request                  $request
  34.      * @param EventDispatcherInterface $eventDispatcher
  35.      * @param CustomerRepository       $customerRepository
  36.      *
  37.      * @return Response
  38.      */
  39.     public function sendEmail(Request $requestEventDispatcherInterface $eventDispatcherCustomerRepository $customerRepository): Response
  40.     {
  41.         $email $request->request->get('email');
  42.         /** @var Customer $customer */
  43.         if ($customer $customerRepository->findOneBy(['email' => $email])) {
  44.             if (!$customer->getPassword()) {
  45.                 return $this->redirectToRoute('client_resetting_request');
  46.             }
  47.             $event = new ObjectEvent($customer);
  48.             $eventDispatcher->dispatch($eventEvents::EMAIL_CLIENT_LOGIN_CREDENTIAL);
  49.             $this->addFlash('success''resetting.password_reset_sent');
  50.             return $this->redirectToRoute('client_security_login');
  51.         }
  52.         $this->addFlash('error''resetting.wrong_email');
  53.         return $this->redirectToRoute('client_resetting_request');
  54.     }
  55. }