src/Controller/RegistrationController.php line 40

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Client;
  4. use App\Entity\Config;
  5. use App\Entity\UserContact;
  6. use App\Form\RegistrationFormType;
  7. use App\Form\SocialRegistrationFormType;
  8. use App\Security\UserContactAuthenticator;
  9. use App\Services\CallApiServices;
  10. use App\Services\QuestionMailService;
  11. use Doctrine\ORM\EntityManagerInterface;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\HttpFoundation\Request;
  14. use Symfony\Component\HttpFoundation\Response;
  15. use Symfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterface;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. use Symfony\Component\Security\Http\Authentication\UserAuthenticatorInterface;
  18. use ReCaptcha\ReCaptcha// Include the recaptcha lib
  19. class RegistrationController extends AbstractController
  20. {
  21.     /**
  22.      * @Route("/register", name="app_register")
  23.      */
  24.     public function register(CallApiServices $callApiServicesQuestionMailService $questionMailServiceRequest $requestUserPasswordHasherInterface $userPasswordHasherUserAuthenticatorInterface $userAuthenticatorUserContactAuthenticator $authenticatorEntityManagerInterface $entityManager): Response
  25.     {
  26.         $user = new Client();
  27.         $serviceId $this->getParameter('app.serviceId');
  28.         $accountId $this->getParameter('app.accountId');
  29.         $config $callApiServices->configuratationPlateforme($accountId$serviceId);
  30.         $session $request->getSession();
  31.         $addressIp $request->getClientIp();
  32.         if ($session->get('parrainId') == null) {
  33.             $parrainId "0";
  34.         } else {
  35.             $parrainId $session->get('parrainId');
  36.         }
  37.         $recaptchaKey $config['recaptchaTab']['sitekey'];
  38.         $secretkey $config['recaptchaTab']['secretkey'];
  39.         $messageError "";
  40.         $form $this->createForm(RegistrationFormType::class, $user);
  41.         $form->handleRequest($request);
  42.         if ($form->isSubmitted() && $form->isValid()) {
  43.             // reCAPTCHA désactivé
  44.             // $recaptcha = new ReCaptcha($secretkey);
  45.             // $resp = $recaptcha->verify($request->request->get('g-recaptcha-response'), $request->getClientIp());
  46.             // if (!$resp->isSuccess()) {
  47.             //     // Do something if the submit wasn't valid ! Use the message to show something
  48.             //     $messageError = "Le reCAPTCHA n'a pas été saisi correctement. Réessayez.";
  49.             // } else {
  50.                 // encode the plain password
  51.                 $user->setPassword($form->get('plainPassword')->getData());
  52.                 $clientInscription $callApiServices->clientInscription(
  53.                     $serviceId,
  54.                     $parrainId,
  55.                     $user->getGenre(),
  56.                     $user->getEmail(),
  57.                     $user->getPassword(),
  58.                     $user->getLastName(),
  59.                     $user->getFirstName(),
  60.                     $user->getPhoneNumber(),
  61.                     $addressIp
  62.                 );
  63.                 // verifier si pas erreur
  64.                 if (isset($clientInscription['responseCode']) && ($clientInscription['responseCode'] == '403')) {
  65.                     $this->addFlash("inscription""Un enregistrement correspondant existe déjà ");
  66.                     return $this->render('registration/register.html.twig', [
  67.                         'registrationForm' => $form->createView(),
  68.                         "recaptchaKey" => $recaptchaKey,
  69.                         "messageError" => $messageError,
  70.                     ]);
  71.                 } else {
  72.                     $user->setCode($clientInscription['code']);
  73.                     $user->setServiceId($serviceId);
  74.                     $this->addFlash("inscription""Vous avez bien été inscrit! Vous allez recevoir un mail afin d'activer votre compte d'un moment à l'autre.
  75.                     Si vous ne recevez pas le mail, veuillez vérifier dans votre boîte SPAM ou courrier indésirable, s'il s'y trouve !! ");
  76.                 }
  77.                 // Envoie de Mail.
  78.                 $questionMailService->checkMail($user$request$accountId$serviceId$callApiServices);
  79.                 return $this->redirectToRoute("app_login");
  80.             // }
  81.         }
  82.         return $this->render('registration/register.html.twig', [
  83.             'registrationForm' => $form->createView(),
  84.             "recaptchaKey" => $recaptchaKey,
  85.             "messageError" => $messageError,
  86.         ]);
  87.     }
  88.     /**
  89.      * @Route("/checkRegister", name="app_check")
  90.      */
  91.     public function checkRegister(CallApiServices $callApiServicesRequest $requestUserPasswordHasherInterface $userPasswordHasherUserAuthenticatorInterface $userAuthenticatorUserContactAuthenticator $authenticatorEntityManagerInterface $entityManager): Response
  92.     {
  93.         $validation = [
  94.             'serviceId' => $request->get('serviceId'),
  95.             'username' => $request->get('username'),
  96.             'password' => $request->get('password'),
  97.             'code' => $request->get('code')
  98.         ];
  99.         $user $callApiServices->clientInscriptionValidation($validation['serviceId'], $validation['username'], $validation['password'], $validation['code'], 1);
  100.         if (isset($user['responseCode']) && ($user['responseCode'] == '403')) {
  101.             $this->addFlash("inscriptionCheck""Votre compte adéja été activer vous ne pouvez plus l'activé");
  102.         } else {
  103.             $this->addFlash("inscriptionCheck""Votre compte a bien été activé, vous pouver désormais profiter de toutes les fonctionnalités de la plateforme.");
  104.         }
  105.         return $this->redirectToRoute("app_login");
  106.     }
  107. }