src/Controller/AccountPasswordResetController.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Form\ReceivePasswordForm;
  4. use App\Repository\UserRepository;
  5. use App\Service\UserService;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use Symfony\Component\HttpFoundation\Response;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. class AccountPasswordResetController extends AbstractController
  11. {
  12.     #[Route(path'/remind/'name'receive_password')]
  13.     public function receivePassword(UserService $userServiceRequest $requestUserRepository $userRepository): Response
  14.     {
  15.         $user $userRepository->findOneBy(['email' => $request->request->get("email")]);
  16.         if ($user) {
  17.             $userService->saveReceiveCode($user);
  18.             return $this->render('security/receive_password_sent.twig');
  19.         }
  20.         return $this->render('security/receive_password.twig', [
  21.             'email' => $request->request->get("email")
  22.         ]);
  23.     }
  24.     #[Route(path'/account/remind/{id}/{code}/'name'receive_password_confirmation'methods: ['GET''POST'])]
  25.     public function receiveConfirmation(
  26.         Request $request,
  27.         UserService $userService,
  28.         string $id,
  29.         string $code
  30.     ): Response {
  31.         $user $userService->findUserByIdAndConfirmationCode((int)$id$code);
  32.         if (!$user) {
  33.             return $this->redirectToRoute('login');
  34.         }
  35.         $form $this->createForm(ReceivePasswordForm::class, $user);
  36.         $form->handleRequest($request);
  37.         if ($form->isSubmitted() && $form->isValid()) {
  38.             $user $form->getData();
  39.             $userService->receivePassword($user);
  40.             return $this->render('security/receive_password_success.twig');
  41.         }
  42.         return $this->render('security/receive_password_edit.twig', ['form' => $form->createView()]);
  43.     }
  44. }