src/Controller/RecoveryController.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\Annotation\Route;
  6. use App\Form\RecoveryFormType;
  7. use App\Form\ChangePasswordFormType;
  8. use Doctrine\ORM\EntityManagerInterface;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use App\Services\CallApiServices;
  11. use App\Services\QuestionMailService;
  12. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  13. use Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface;
  14. class RecoveryController extends AbstractController
  15. {
  16.     #[Route('/recovery'name'app_recovery')]
  17.     public function index(Request $requestCallApiServices $callApiServicesQuestionMailService $questionMailService): Response
  18.     {
  19.         $serviceId $this->getParameter('app.serviceId');
  20.         $accountId $this->getParameter('app.accountId');
  21.         $form $this->createForm(RecoveryFormType::class);
  22.         $form->handleRequest($request);
  23.         if ($form->isSubmitted() && $form->isValid()) {
  24.             $data $form->getData();
  25.             $clientForgotPassword $callApiServices->clientForgotPassword($serviceId$data['email']);
  26.           
  27.             if (isset($clientForgotPassword['clientId'])){
  28.                 $client $callApiServices->clientProfile($serviceId$clientForgotPassword['clientId'], $clientForgotPassword['reqToken']);
  29.             }else{
  30.                  //Envoie Flash message
  31.                  $this->addFlash("Erreur""Erreur : Aucun compte correspondant à cette adresse e-mail. Veuillez vérifier que vous avez entré l'adresse e-mail correcte et réessayer.");
  32.      
  33.                 //Redirection page Login
  34.                 return $this->redirectToRoute("app_login");
  35.             }
  36.          
  37.             if ($clientForgotPassword['findEmail'] == true) {
  38.                 //Envoie mail de reset password
  39.                 $questionMailService->resetPasswordMail($data['email'], $clientForgotPassword['reqToken'], $clientForgotPassword['limitToken'], $clientForgotPassword['clientId'], $request$serviceId$client);
  40.                 //Envoie Flash message
  41.                 $this->addFlash("recovery""Vous allez recevoir un mail afin de reinitialiser votre mot de passe d'un moment à l'autre.
  42.             Si vous ne recevez pas le mail, veuillez vérifier dans votre boîte SPAM ou courrier indésirable, s'il s'y trouve !! ");
  43.                 //Redirection page Login
  44.                 return $this->redirectToRoute("app_login");
  45.             }
  46.             if ($clientForgotPassword['findEmail'] == false) {
  47.                 $this->addFlash("nonValide""Votre adresse mail ne corespond pas ");
  48.                 return $this->render('recovery/index.html.twig', [
  49.                     'recoveryForm' => $form->createView(),
  50.                 ]);
  51.             }
  52.         }
  53.         return $this->render('recovery/index.html.twig', [
  54.             'recoveryForm' => $form->createView(),
  55.         ]);
  56.     }
  57.     /**
  58.      * @Route("/recoveryPassword", name="app_changePassword")
  59.      */
  60.     public function checkRegister(CallApiServices $callApiServicesRequest $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): Response
  61.     {
  62.         $serviceId $this->getParameter('app.serviceId');
  63.         $accountId $this->getParameter('app.accountId');
  64.         $limitToken $request->get('limitToken');
  65.         $limitToken str_replace("/"" "$limitToken);
  66.         $validation = [
  67.             'reqToken' => $request->get('reqToken'),
  68.             'limitToken' => $limitToken,
  69.             'clientId' => $request->get('clientId')
  70.         ];
  71.         $client $callApiServices->clientProfile($serviceId$validation['clientId'], $validation['reqToken']);
  72.         if (isset($client['responseCode']) && ($client['responseCode'] == "410")) {
  73.             $this->addFlash("LiensExpirer""le liens a éxpirer veuiller reformuler une noulelle requette.");
  74.             return $this->redirectToRoute("app_login");
  75.         }
  76.         $username $client['username'];
  77.         $form $this->createForm(ChangePasswordFormType::class);
  78.         $form->handleRequest($request);
  79.         if ($form->isSubmitted() && $form->isValid()) {
  80.             $data $form->getData();
  81.             $oldPassword "";
  82.             $newPassword $data['password'];
  83.             $changePassword $callApiServices->clientResetPassword($serviceId$username$oldPassword$newPassword$validation['reqToken'], $validation['limitToken']);
  84.             $this->addFlash("changePassword""Votre mot de passe a bien été reinitialisé, vous pouver désormais profiter de toutes les fonctionnalités de la plateforme.");
  85.             return $this->redirectToRoute("app_login");
  86.         }
  87.         return $this->render('recovery/changePassword.html.twig', [
  88.             'changePasswordForm' => $form->createView(),
  89.         ]);
  90.     }
  91. }