From 60a4e1afda0924dbc111cd282e16aa9025c46bc2 Mon Sep 17 00:00:00 2001
From: pfleu <pierre.fleutot@audemarspiguet.com>
Date: Mon, 2 Dec 2024 14:09:16 +0100
Subject: [PATCH] La requete API api/lexicon/search retourne aussi les lexiques
 de groupes si on recherche par id d'un user. Annulation modif commentaire
 security.yaml

---
 config/packages/security.yaml        | 2 +-
 src/Repository/LexiconRepository.php | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/config/packages/security.yaml b/config/packages/security.yaml
index fb717d5..a7a4e9c 100644
--- a/config/packages/security.yaml
+++ b/config/packages/security.yaml
@@ -26,7 +26,7 @@ security:
         api_token:
             pattern: ^/api/token$
             security: false
-        api: # Pour permettre à l'utilisateur connecté sur Balex (avec rôle admin) d'utiliser le swagger sans token, on commente tout le pare-feu "api"
+        api:
             pattern: ^/api(?!/doc$) # Accepts routes under /api except /api/doc (pour api/doc, on utilisera donc le firewall "main" ce qui permettra d'accéder au swagger quand on est authentifié via Session PHP avec le role Admin
             security: true
             stateless: true # Pas d'authentification, pas de session utilisateur (mais le compte user est vérifié via le token)
diff --git a/src/Repository/LexiconRepository.php b/src/Repository/LexiconRepository.php
index da4d3ff..17d7b9d 100644
--- a/src/Repository/LexiconRepository.php
+++ b/src/Repository/LexiconRepository.php
@@ -29,8 +29,11 @@ class LexiconRepository extends ServiceEntityRepository
             ->leftJoin('l.group', 'g')
         ;
 
+        // On retourne tous les lexiques liés à l'utilisateur, pas uniquement son lexique personnel
         if ($filter['user'] ?? null) {
-            $qb->andWhere('u = :user')
+            $qb
+                ->leftJoin('g.groupMemberships', 'gm')
+                ->andWhere('u = :user OR gm.user = :user')
                 ->setParameter('user', $filter['user'])
             ;
         }
-- 
GitLab