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\Security\LoginFormAuthenticator;
  6. use App\Service\UserService;
  7. use Symfony\Component\HttpFoundation\Request;
  8. use Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface;
  9. use Symfony\Component\Routing\Annotation\Route;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  12. class AccountPasswordResetController extends AbstractController
  13. {
  14.     #[Route(path'/remind/'name'receive_password')]
  15.     public function receivePassword(UserService $userServiceRequest $requestUserRepository $userRepository): Response
  16.     {
  17.         $user $userRepository->findOneBy(['email' => $request->request->get("email")]);
  18.         if ($user) {
  19.             $userService->saveReceiveCode($user);
  20.             return $this->render('security/receive_password_sent.twig');
  21.         }
  22.         return $this->render('security/receive_password.twig', [
  23.             'email' => $request->request->get("email")
  24.         ]);
  25.     }
  26.     #[Route(path'/account/remind/{id}/{code}/'name'receive_password_confirmation'methods: ['GET''POST'])]
  27.     public function receiveConfirmation(
  28.         Request $request,
  29.         UserService $userService,
  30.         LoginFormAuthenticator $authenticator,
  31.         UserAuthenticatorInterface $userAuthenticator,
  32.         string $id,
  33.         string $code
  34.     ): Response|null {
  35.         $user $userService->findUserByIdAndConfirmationCode((int)$id$code);
  36.         if (!$user) {
  37.             return $this->redirectToRoute('login');
  38.         }
  39.         $form $this->createForm(ReceivePasswordForm::class, $user);
  40.         $form->handleRequest($request);
  41.         if ($form->isSubmitted() && $form->isValid()) {
  42.             $user $form->getData();
  43.             $userService->receivePassword($user);
  44.             return $userAuthenticator->authenticateUser($user$authenticator$request);
  45.         }
  46.         return $this->render('security/receive_password_edit.twig', ['form' => $form->createView()]);
  47.     }
  48. }