src/Controller/ResetPasswordController.php line 27

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ForgotPasswordFormType;
  4. use App\Form\LoginFormType;
  5. use App\Infrastructure\RequestDto\ForgotPasswordDto;
  6. use App\Infrastructure\Service\Impl\ResetPasswordServiceImpl;
  7. use App\Infrastructure\RequestDto\LoginDto;
  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 ResetPasswordController extends AbstractController
  13. {
  14.     private $resetPasswordService;
  15.     public function __construct(ResetPasswordServiceImpl $resetPasswordService)
  16.     {
  17.         $this->resetPasswordService $resetPasswordService;
  18.     }
  19.     /**
  20.      * @Route("/forgot/password", name="app_forgot_password",methods={"GET","POST"})
  21.      */
  22.     public function forgotPassword(Request $request): Response
  23.     {
  24.         $forgotPasswordDto = new ForgotPasswordDto();
  25.         $form $this->createForm(ForgotPasswordFormType::class, $forgotPasswordDto);
  26.         $form->handleRequest($request);
  27.         if ($form->isSubmitted() && $form->isValid()) {
  28.             $this->resetPasswordService->checkEmail($forgotPasswordDto->getProfessionalEmail());
  29.             $this->addFlash('success''Merci de vĂ©rifier votre boite email!');
  30.             return $this->redirectToRoute('app_forgot_password');
  31.         }
  32.         return $this->render('reset_password/forgot_password.html.twig', [
  33.             'form' => $form->createView()
  34.         ]);
  35.     }
  36.     /**
  37.      * @Route("/reset/password/{token}", name="app_reset_password")
  38.      */
  39.     public function resetPassword(string $token): Response
  40.     {
  41.         $result $this->resetPasswordService->checkToken($token);
  42.         if (array_key_exists('collaborator_id'$result)) {
  43.             return $this->render('reset_password/index.html.twig', [
  44.                 'id' => $result->collaborator_id,
  45.                 'token' => $token,
  46.             ]);
  47.         }
  48.         $this->addFlash('error'end($result->error));
  49.         return $this->redirectToRoute('app_forgot_password');
  50.     }
  51.     /**
  52.      * @Route("/update/password", name="app_update_password")
  53.      */
  54.     public function updatePassword(Request $request): Response
  55.     {
  56.         $this->resetPasswordService->resetPassword(
  57.             $request->request->get('token'),
  58.             $request->request->get("id"),
  59.             $request->request->get("password")
  60.         );
  61.         return $this->redirectToRoute('app_login');
  62.     }
  63. }