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.            
  26.         $clientForgotPassword $callApiServices->clientForgotPassword($serviceId$data['email']);
  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.         if ($clientForgotPassword['findEmail'] == true) {
  37.              //Envoie mail de reset password
  38.             $questionMailService->resetPasswordMail($data['email'], $clientForgotPassword['reqToken'], $clientForgotPassword['limitToken'], $clientForgotPassword['clientId'], $request$serviceId$client);
  39.           
  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.             }
  47.         if ($clientForgotPassword['findEmail'] == false) {
  48.             $this->addFlash("nonValide""Votre adresse mail ne corespond pas ");
  49.            return $this->render('recovery/index.html.twig', [
  50.                    'recoveryForm' => $form->createView(),
  51.                ]);
  52.             }
  53.     }
  54.         return $this->render('recovery/index.html.twig', [
  55.             'recoveryForm' => $form->createView(),
  56.         ]);
  57.     }
  58.    /**
  59.      * @Route("/recoveryPassword", name="app_changePassword")
  60.      */
  61.     public function checkRegister(CallApiServices $callApiServicesRequest $requestUserPasswordHasherInterface $userPasswordHasherEntityManagerInterface $entityManager): Response
  62.     {
  63.         $serviceId $this->getParameter('app.serviceId');
  64.         $accountId $this->getParameter('app.accountId');
  65.         $validation = [
  66.             'reqToken' => $request->get('reqToken'),
  67.             'limitToken' => $request->get('limitToken'),
  68.             'clientId' => $request->get('clientId')
  69.         ];
  70.         $client $callApiServices->clientProfile($serviceId$validation['clientId']);
  71.         $username $client['username'];
  72.       
  73.         $form $this->createForm(ChangePasswordFormType::class);
  74.         $form->handleRequest($request);
  75.         if ($form->isSubmitted() && $form->isValid())
  76.         {
  77.             $data $form->getData();
  78.          
  79.             $oldPassword "";
  80.             $newPassword $data['password'];
  81.             $changePassword $callApiServices->clientResetPassword($serviceId$validation['clientId'], $oldPassword$newPassword$validation['reqToken'], $validation['limitToken'] );
  82.         
  83.         $this->addFlash("changePassword""Votre mot de passe a bien été reinitialisé, vous pouver désormais profiter de toutes les fonctionnalités de la plateforme.");
  84.         return $this->redirectToRoute("app_login");
  85.         }
  86.         return $this->render('recovery/changePassword.html.twig', [
  87.             'changePasswordForm' => $form->createView(),
  88.         ]);
  89.     }
  90. }