From 69bddfeb0967df407d1aae6d129f5036006b7e22 Mon Sep 17 00:00:00 2001
From: Antony Le Courtes <antony.lecourtes@unicaen.fr>
Date: Wed, 5 Mar 2025 16:43:10 +0100
Subject: [PATCH] =?UTF-8?q?Renforcement=20s=C3=A9curit=C3=A9=20sur=20le=20?=
 =?UTF-8?q?t=C3=A9l=C3=A9chargement=20des=20fichiers=20li=C3=A9s=20au=20co?=
 =?UTF-8?q?ntrat=20de=20l'intervenant?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 module/Contrat/src/Controller/ContratController.php | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/module/Contrat/src/Controller/ContratController.php b/module/Contrat/src/Controller/ContratController.php
index bce3af3073..6285e7e152 100755
--- a/module/Contrat/src/Controller/ContratController.php
+++ b/module/Contrat/src/Controller/ContratController.php
@@ -588,15 +588,21 @@ class ContratController extends AbstractController
     public function telechargerFichierAction()
     {
         $contrat = $this->getEvent()->getParam('contrat');
-        /* @var $contrat Contrat */
+        $fichierDemandee = $this->getEvent()->getParam('fichier');
 
         if (!$this->isAllowed($contrat, Privileges::CONTRAT_VISUALISATION)) {
             throw new UnAuthorizedException('Vous n\'avez pas de droit de télécharger ce fichier');
         }
 
-        $fichier = $this->getEvent()->getParam('fichier');
+        $fichiersContrat = $contrat->getFichier();
+        foreach ($fichiersContrat as $fichier) {
+            if ($fichier->getId() == $fichierDemandee->getId()) {
+                $this->uploader()->download($fichier);
+            }
+        }
+
+        throw new \Exception('Le fichier n\'existe pas ou bien il appartient à un autre intervenant');
 
-        $this->uploader()->download($fichier);
     }
 
 
-- 
GitLab