src/Admin/UI/Web/Controller/Security/ResetPasswordController.php line 23
<?phpdeclare(strict_types=1);namespace App\Admin\UI\Web\Controller\Security;use App\Admin\Application\Command\User\User\ChangePassword\ChangePasswordUserCommand;use App\Admin\Application\Command\User\User\ResetPassword\ResetPasswordCommand;use App\Admin\Application\Command\User\UserToken\Delete\DeleteUserTokenCommand;use App\Admin\Application\Query\User\UserToken\GetToken\UserGetTokenQuery;use App\Admin\UI\Web\Form\Types\Security\ResetPassword\ChangePasswordFormType;use App\Admin\UI\Web\Form\Types\Security\ResetPassword\ResetPasswordRequestFormType;use App\Core\Application\Command\CommandBusInterface;use App\Core\Application\Query\QueryBusInterface;use App\Core\Domain\Entity\User\UserToken;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;class ResetPasswordController extends AbstractController{public function request(Request $request, CommandBusInterface $commandBus): Response{$form = $this->createForm(ResetPasswordRequestFormType::class);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$commandBus->dispatch(new ResetPasswordCommand($form->get('email')->getData()));return $this->redirectToRoute('admin_web_security_reset_password_check_email');}return $this->render('Admin/security/reset_password/request.html.twig', ['requestForm' => $form->createView(),]);}public function checkEmail(): Response{return $this->render('Admin/security/reset_password/check_email.html.twig');}public function changePassword(string $token,QueryBusInterface $queryBus,Request $request,CommandBusInterface $commandBus): Response {$userToken = $queryBus->handle(new UserGetTokenQuery($token));if (!$userToken instanceof UserToken || !$userToken->isValid()) {throw new NotFoundHttpException();}$form = $this->createForm(ChangePasswordFormType::class);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$commandBus->dispatch(new ChangePasswordUserCommand($userToken->getRequester(),$form->get('plainPassword')->getData()));$commandBus->dispatch(new DeleteUserTokenCommand($userToken));$this->addFlash('success', 'ui.reset_password.reset_success');return $this->redirectToRoute('admin_web_security_login');}return $this->render('Admin/security/reset_password/change_password.html.twig', ['form' => $form->createView(),]);}}