From e9f12591e8e1979f2bd5805d0776f0e7e2c1e6d8 Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Wed, 4 Nov 2020 18:16:11 +0100
Subject: [PATCH] FEAT #13273 TIME 2:20 Add ldap filters

---
 bin/ldap/synchronizationScript.php  | 6 ++++--
 modules/ldap/xml/config.xml.default | 2 ++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/bin/ldap/synchronizationScript.php b/bin/ldap/synchronizationScript.php
index cee047e277a..669e26931cf 100644
--- a/bin/ldap/synchronizationScript.php
+++ b/bin/ldap/synchronizationScript.php
@@ -140,6 +140,7 @@ function getUsersEntries($xmlfile)
     foreach ($xmlfile->filter->dn as $valueDN) {
         if ((string)$valueDN['type'] == 'users') {
             $dn = (string)$valueDN['id'];
+            $filters = empty((string)$valueDN->user) ? null : (string)$valueDN->user;
         }
     }
     if (empty($dn)) {
@@ -159,7 +160,7 @@ function getUsersEntries($xmlfile)
         return ['errors' => 'Ldap bind failed : Authentication failed'];
     }
 
-    $search = @ldap_search($ldap, $dn, 'cn=*');
+    $search = @ldap_search($ldap, $dn, ($filters ?? 'cn=*'));
     if ($search === false) {
         return ['errors' => 'Ldap search failed : ' . ldap_error($ldap)];
     }
@@ -217,6 +218,7 @@ function getEntitiesEntries($xmlfile)
     foreach ($xmlfile->filter->dn as $valueDN) {
         if ((string)$valueDN['type'] == 'entities') {
             $dn = (string)$valueDN['id'];
+            $filters = empty((string)$valueDN->user) ? null : (string)$valueDN->user;
         }
     }
     if (empty($dn)) {
@@ -236,7 +238,7 @@ function getEntitiesEntries($xmlfile)
         return ['errors' => 'Ldap bind failed : Authentication failed'];
     }
 
-    $search = ldap_search($ldap, $dn, 'cn=*');
+    $search = ldap_search($ldap, $dn, ($filters ?? 'cn=*'));
     $entries = mb_convert_encoding(ldap_get_entries($ldap, $search), 'utf-8');
 
     $ldapEntries = [];
diff --git a/modules/ldap/xml/config.xml.default b/modules/ldap/xml/config.xml.default
index 95c8f26733e..f0de592cf58 100755
--- a/modules/ldap/xml/config.xml.default
+++ b/modules/ldap/xml/config.xml.default
@@ -45,9 +45,11 @@
     <filter>
         <!-- Chemin ou se trouve les utilisateurs de l'application -->
          <dn id="OU=Utilisateurs,DC=maarch,DC=com" type="users">
+             <user>(cn=*)</user>
         </dn>
         <!-- Chemin ou se trouve les entités de l'application -->
         <dn id="OU=Services,DC=maarch,DC=com" type="entities">
+            <user>(cn=*)</user>
         </dn>
     </filter>
 </root>
-- 
GitLab