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