src/Controller/Front/PasswordResetController.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Entity\PasswordReset;
  4. use App\Form\Type\Front\PasswordResetRequestType;
  5. use App\Form\Type\Front\PasswordResetType;
  6. use App\Service\Front\PasswordReset\PasswordChangeHandlerInterface;
  7. use App\Service\Front\PasswordReset\RequestHandlerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class PasswordResetController extends AbstractController
  13. {
  14.     /**
  15.      * @Route("/password_reset", name="password_reset")
  16.      */
  17.     public function index(Request $requestRequestHandlerInterface $handler): Response
  18.     {
  19.         $form $this->createForm(PasswordResetRequestType::class);
  20.         $form->handleRequest($request);
  21.         if ($form->isSubmitted() && $form->isValid()) {
  22.             $handler->handle($form->get('username')->getData());
  23.             return $this->redirectToRoute('password_reset_mail_send');
  24.         }
  25.         return $this->render('front/password_reset/index.html.twig', [
  26.             'form' => $form->createView(),
  27.         ]);
  28.     }
  29.     /**
  30.      * @Route("/password_reset/send", name="password_reset_mail_send")
  31.      */
  32.     public function send(): Response
  33.     {
  34.         return $this->render('front/password_reset/send.html.twig', [
  35.         ]);
  36.     }
  37.     /**
  38.      * @Route("/password_reset/reset/{id}", name="password_reset_reset")
  39.      */
  40.     public function reset(PasswordReset $passwordResetRequest $requestPasswordChangeHandlerInterface $handler): Response
  41.     {
  42.         if (!$this->isGranted('PASSWORD_RESET_NOT_EXPIRED'$passwordReset)) {
  43.             return $this->render('front/password_reset/expired.html.twig');
  44.         }
  45.         $form $this->createForm(PasswordResetType::class);
  46.         $form->handleRequest($request);
  47.         if ($form->isSubmitted() && $form->isValid()) {
  48.             $handler->handle($passwordReset$form->get('plain_password')->getData());
  49.             return $this->redirectToRoute('password_reset_complete');
  50.         }
  51.         return $this->render('front/password_reset/reset.html.twig', [
  52.             'form' => $form->createView(),
  53.         ]);
  54.     }
  55.     /**
  56.      * @Route("/password_reset/complete", name="password_reset_complete")
  57.      */
  58.     public function complete(): Response
  59.     {
  60.         return $this->render('front/password_reset/complete.html.twig', [
  61.         ]);
  62.     }
  63. }