1 --- old/ecrire/auth/ldap.php 2017-06-08 21:58:17.000000000 +0200
2 +++ new/ecrire/auth/ldap.php 2017-06-10 02:54:02.687954143 +0200
4 $desc = isset($ldap['attributes']) && $ldap['attributes'] ? $ldap['attributes'] : $GLOBALS['ldap_attributes'] ;
6 $logins = is_array($desc['login']) ? $desc['login'] : array($desc['login']);
7 + if (isset($GLOBALS['ldap_search'])) {
8 + $search_query = str_replace("%user%", $login_search, $GLOBALS['ldap_search']);
9 + $result = @ldap_search($ldap_link, $ldap_base, $search_query, array("dn"));
10 + $info = @ldap_get_entries($ldap_link, $result);
11 + // Ne pas accepter les resultats si plus d'une entree
12 + // (on veut un attribut unique)
14 - // Tenter une recherche pour essayer de retrouver le DN
15 - foreach ($logins as $att) {
16 - $result = @ldap_search($ldap_link, $ldap_base, "$att=$login_search", array("dn"));
17 - $info = @ldap_get_entries($ldap_link, $result);
18 - // Ne pas accepter les resultats si plus d'une entree
19 - // (on veut un attribut unique)
20 + if (is_array($info) and $info['count'] == 1) {
21 + $dn = $info[0]['dn'];
25 + if (@ldap_bind($ldap_link, $dn, $pass)) {
30 + // Tenter une recherche pour essayer de retrouver le DN
31 + foreach ($logins as $att) {
32 + $result = @ldap_search($ldap_link, $ldap_base, "$att=$login_search", array("dn"));
33 + $info = @ldap_get_entries($ldap_link, $result);
34 + // Ne pas accepter les resultats si plus d'une entree
35 + // (on veut un attribut unique)
37 - if (is_array($info) and $info['count'] == 1) {
38 - $dn = $info[0]['dn'];
42 - if (@ldap_bind($ldap_link, $dn, $pass)) {
47 + if (is_array($info) and $info['count'] == 1) {
48 + $dn = $info[0]['dn'];
52 + if (@ldap_bind($ldap_link, $dn, $pass)) {
59 if ($checkpass and !isset($dn)) {
60 // Si echec, essayer de deviner le DN