src/Controller/Utilisateurs/PasswordRecoveryController.php line 74
<?phpnamespace App\Controller\Utilisateurs;use App\Form\GetResetPasswordEmailForm;use App\Form\NewPasswordForm;use App\Service\MailSender;use App\Service\Utilisateurs;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\HttpFoundation\Request;use App\Service\PasswordRecovery;/*** Class for resetting password process* Class MotDePasseOublieController** @package App\Controller\Utilisateurs\MotDePasseOublie*/class PasswordRecoveryController extends AbstractController{/*** @Route("/mot-de-passe-recuperation", name="motDePasseRecuperation" , methods = {"GET","POST"})*/public function motDePasseOublie(Request $request,PasswordRecovery $passwordRecovery,MailSender $mailSender,) {$form = $this->createForm(GetResetPasswordEmailForm::class);$errors = [];$done = false;if ($request->isMethod("POST")) {$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {if ($idRecovery = $passwordRecovery->resetPasswordCreation($form->get('email')->getData())) {if ($userData = $passwordRecovery->getUserData($idRecovery)) {if ($mailSender->sendRecoveryMail($idRecovery, $userData[0]['mail'])) {$done = true;} else {$errors[] = array("message" => 'Impossible d\'envoyer le mail derécupération, veuillez nous contacter pour résoudre le problème.');}} else {$errors[] = array("message" => 'Impossible de récupérer les données de l\'utilisateur, le mail est inconnu ou le compte est inactif.Veuillez nous contacter pour résoudre le problème.');}} else {$errors[] = array("message" => 'Impossible de récupérer les données de l\'utilisateur, le mail est inconnu ou le compte est inactif.Veuillez nous contacter pour résoudre le problème.');}} else {$errors = $form->getErrors(true);}}return $this->render('users/reset-password.html.twig', ['form' => $this->createForm(GetResetPasswordEmailForm::class),'errors' => $errors,'done' => $done]);}/*** @Route("/recuperation-mot-de-passe/{idRecovery}", name="newPassword" , methods = {"GET","POST"})*/public function resetPassword(Request $request,Utilisateurs $userService,PasswordRecovery $passwordRecovery,$idRecovery) {$isValid = $passwordRecovery->checkIfIdRecoveryIsValid($idRecovery);$errors = [];if ($isValid === 'ok') {$done = false;$form = $this->createForm(NewPasswordForm::class,null,['idRecovery' => $idRecovery]);if ($request->isMethod("POST")) {$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {if($userService->updatePassword($form->get('mdp')->getData(), $idRecovery) == "done"){$done = true;} else {$errors[] = array("message" => 'Impossible de mettre à jour le mot de passe, veuillez nous contacter pour résoudre le problème.');}} else {$errors = $form->getErrors(true);}}return $this->render('users/new-password.html.twig', ['form' => $form,'errors' => $errors,'done' => $done]);} else {$errors[] = array("message" => 'Votre lien de récupération est inconnu ou périmé,veuillez en demander un nouveau en recommençant la procédure');}return $this->render('users/reset-password.html.twig', ['form' => $this->createForm(GetResetPasswordEmailForm::class),'errors' => $errors]);}}