diff --git a/src/Controller/FrontNewSignalementController.php b/src/Controller/FrontNewSignalementController.php index 9e1615511..1a4c0701c 100755 --- a/src/Controller/FrontNewSignalementController.php +++ b/src/Controller/FrontNewSignalementController.php @@ -14,28 +14,19 @@ use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Validator\Validator\ValidatorInterface; -#[Route('/nouveau-formulaire')] class FrontNewSignalementController extends AbstractController { - #[Route('/signalement', name: 'front_nouveau_formulaire')] + #[Route('/nouveau-formulaire/signalement', name: 'front_nouveau_formulaire')] public function index(ParameterBagInterface $parameterBag): Response { - if (!$parameterBag->get('feature_new_form')) { - return $this->redirectToRoute('front_signalement'); - } - - return $this->render('front/nouveau_formulaire.html.twig', [ - 'uuid_signalement' => null, - ]); + return $this->redirectToRoute('front_signalement'); } - #[Route('/signalement/{uuid}', name: 'front_nouveau_formulaire_edit')] + #[Route('/signalement-draft/{uuid}', name: 'front_nouveau_formulaire_edit', methods: 'GET')] public function edit( SignalementDraft $signalementDraft, ParameterBagInterface $parameterBag ): Response { - // TODO : sécurité ? - if (!$parameterBag->get('feature_new_form')) { return $this->redirectToRoute('front_signalement'); } diff --git a/src/Controller/FrontSignalementController.php b/src/Controller/FrontSignalementController.php index e6bdaff0e..f833562c4 100755 --- a/src/Controller/FrontSignalementController.php +++ b/src/Controller/FrontSignalementController.php @@ -41,6 +41,7 @@ use Exception; use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\DependencyInjection\Attribute\Autowire; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; @@ -52,8 +53,18 @@ class FrontSignalementController extends AbstractController { #[Route('/signalement', name: 'front_signalement')] - public function index(SituationRepository $situationRepository, Request $request): Response - { + public function index( + SituationRepository $situationRepository, + Request $request, + #[Autowire(env: 'FEATURE_NEW_FORM_ENABLE')] + bool $enableNewFormFeature, + ): Response { + if ($enableNewFormFeature) { + return $this->render('front/nouveau_formulaire.html.twig', [ + 'uuid_signalement' => null, + ]); + } + $title = 'Signalez vos problèmes de logement'; $etats = ['Etat moyen', 'Mauvais état', 'Très mauvais état']; $etats_classes = ['moyen', 'grave', 'tres-grave']; @@ -72,18 +83,28 @@ public function index(SituationRepository $situationRepository, Request $request } #[Route('/checkterritory', name: 'front_signalement_check_territory', methods: ['GET'])] - public function checkTerritory(Request $request, PostalCodeHomeChecker $postalCodeHomeChecker, CommuneRepository $communeRepository): Response - { + public function checkTerritory( + Request $request, + PostalCodeHomeChecker $postalCodeHomeChecker, + CommuneRepository $communeRepository + ): Response { $postalCode = $request->get('cp'); if (empty($postalCode)) { - return $this->json(['success' => false, 'message' => 'Le paramètre "cp" est manquant', 'label' => 'Erreur']); + return $this->json([ + 'success' => false, + 'message' => 'Le paramètre "cp" est manquant', + 'label' => 'Erreur', + ]); } $inseeCode = $request->get('insee'); if (!empty($inseeCode)) { $commune = $communeRepository->findOneBy(['codePostal' => $postalCode, 'codeInsee' => $inseeCode]); if (!$commune) { - return $this->json(['success' => false, 'message' => 'Le paramètre code postal et le code insee ne sont pas cohérent', 'label' => 'Erreur']); + return $this->json([ + 'success' => false, + 'message' => 'Le paramètre code postal et le code insee ne sont pas cohérent', + 'label' => 'Erreur', ]); } } if ($postalCodeHomeChecker->isActive($postalCode, $inseeCode)) { @@ -118,7 +139,9 @@ public function handleUpload( try { foreach ($files as $key => $file) { $res = $uploadHandlerService->toTempFolder($file)->setKey($key); - if (!isset($res['error']) && \in_array($file->getMimeType(), ImageManipulationHandler::IMAGE_MIME_TYPES)) { + if (!isset($res['error']) + && \in_array($file->getMimeType(), ImageManipulationHandler::IMAGE_MIME_TYPES) + ) { $imageManipulationHandler->resize($res['filePath'])->thumbnail(); } @@ -137,6 +160,9 @@ public function handleUpload( /** * @throws Exception + * + * @deprecated Cette route est obsolète, elle est remplacée par les routes du + * @see \App\Controller\FrontNewSignalementController */ #[Route('/signalement/envoi', name: 'envoi_signalement', methods: 'POST')] public function envoi( @@ -158,9 +184,21 @@ public function envoi( LoggerInterface $logger, DocumentProvider $documentProvider, AutoAssigner $autoAssigner, + #[Autowire(env: 'FEATURE_NEW_FORM_ENABLE')] + bool $enableNewFormFeature, ): Response { + if ($enableNewFormFeature) { + $logger->error( + 'La soumission de l\'ancien formulaire est inactif.', + ['payload' => $request->request->all()] + ); + + return $this->json(['response' => 'error'], Response::HTTP_BAD_REQUEST); + } + if ($this->isCsrfTokenValid('new_signalement', $request->request->get('_token')) - && $data = $request->get('signalement')) { + && $data = $request->get('signalement') + ) { $signalement = new Signalement(); $dataDateBail = $dataHasDPE = $dataDateDPE = $dataConsoSizeYear = $dataConsoSize = $dataConsoYear = null; $listNDECriticites = []; diff --git a/templates/front/nouveau_formulaire.html.twig b/templates/front/nouveau_formulaire.html.twig index d03aac9e5..bc47b0699 100755 --- a/templates/front/nouveau_formulaire.html.twig +++ b/templates/front/nouveau_formulaire.html.twig @@ -11,7 +11,7 @@ {% block body %}