src/Controller/FrontController.php line 18
<?phpnamespace App\Controller;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\Routing\Annotation\Route;use Google\Cloud\RecaptchaEnterprise\V1\RecaptchaEnterpriseServiceClient;use Google\Cloud\RecaptchaEnterprise\V1\Event;use Google\Cloud\RecaptchaEnterprise\V1\Assessment;use Google\Cloud\RecaptchaEnterprise\V1\TokenProperties\InvalidReason;use Doctrine\ORM\EntityManagerInterface;use App\Entity\Engagement;class FrontController extends AbstractController {#[Route(path: '/', name: 'home')]public function index(): Response {return $this->render('front/home.html.twig');}#[Route(path: '/devenir-benevole', name: 'devenir')]public function devenir(Request $request, EntityManagerInterface $em): Response {$data = ['ville' => $request->get('ville', false),'civilite' => $request->get('civilite', false),'nom' => $request->get('nom', false),'prenom' => $request->get('prenom', false),'type_deva' => $request->get('type_deva', false),'nivol' => $request->get('nivol', false),'birth' => $request->get('birth', false),'email' => $request->get('email', false),'tel' => $request->get('tel', false),'profession' => $request->get('profession', false)];if ($request->isMethod('post')) {$data['secure'] = 'ok';$client = new RecaptchaEnterpriseServiceClient(['credentials' => dirname(__FILE__).'/../../var/google.json','projectId' => $_ENV['GOOGLE_PROJECT']]);$projectName = $client->projectName($_ENV['GOOGLE_PROJECT']);$event = (new Event())->setSiteKey($_ENV['GOOGLE_KEY'])->setToken($request->get('g-recaptcha-response'));$assessment = (new Assessment())->setEvent($event);try {$response = $client->createAssessment($projectName,$assessment);// You can use the score only if the assessment is valid,// In case of failures like re-submitting the same token, getValid() will return falseif ($response->getTokenProperties()->getValid() == false || $response->getRiskAnalysis()->getScore()<0.5) {$data['secure'] = 'ko';} else {$dossier = $em->getRepository(Engagement::class)->findOneBy(['email'=>$request->get('email')]);if($dossier) {$data['existe'] = 1;return $this->render('front/devenir-resultat.html.twig', $data);} else {$dossier = new Engagement();$dossier->setCivilite($request->get('civilite'));$dossier->setBirthdate(new \Datetime($request->get('birth')));$dossier->setFirstname($request->get('prenom'));$dossier->setLastname($request->get('nom'));$dossier->setDevaType($request->get('type_deva'));$dossier->setPhone($request->get('tel'));$dossier->setEmail($request->get('email'));$dossier->setJob($request->get('profession'));$dossier->setCreationDate(new \Datetime());$dossier->setUpdatedDate(new \Datetime());$dossier->setToken(md5($request->get('prenom').time().$request->get('nom')));$dossier->setDollyId(0);$dossier->setNivol($request->get('nivol'));$dossier->setStatus(1);$this->managerRegistry->getManager('default')->persist($dossier);$this->managerRegistry->getManager('default')->flush();return new RedirectResponse('/dossier-enregistre');}}} catch (exception $e) {$data['secure'] = 'ko';}}return $this->render('front/devenir.html.twig', $data);}#[Route(path: '/suivi-dossier-benevole', name: 'suivi')]public function suivi(): Response {return $this->render('front/home.html.twig');}#[Route(path: '/dossier-enregistre', name: 'dossierok')]public function dossierok(): Response {return $this->render('front/devenir-resultat.html.twig');}#[Route(path: '/nous-contacter', name: 'contact')]public function contact(): Response {return $this->render('front/home.html.twig');}}