Commit b0b629bbae8f064fa384781f69b5638fac2bd6a0

Authored by Etienne Pallier
1 parent aec79c69
Exists in master and in 2 other branches dev, dev-IRAP

Refactorisation add()&edit() de Materiels + BUGFIX + Cleanup LDAP

DESCRIPTION :
	- GROS CLEANUP du code LDAP dans LdapConnectionsTable.php
	- REFACTORISATION des actions add() et edit() de MaterielsController en
une seule fonction add_or_edit() car elles étaient très semblables
	- BUGFIX Gestionnaire de reference : maintenant bien sauvegardé (avant
il était perdu...)

IMPORTANT :
	- Pour connaitre la version actuelle, taper "./VERSION"
	- Pour mettre à jour le code, utiliser ./UPDATE depuis la racine du
projet (ne plus se contenter de faire "git pull")
	(UPDATE fait "git pull" mais il met aussi à jour la BD, seulement si
nécessaire)
	- Pour s'assurer que la version récupérée est stable, taper
"./TESTS.sh" (tout doit passer ok)
	- En cas de problème, taper ./SHOW_LOGS pour voir si les logs d'erreur
peuvent aider
	- Pour que "./TESTS.sh" s'exécute sans "deprecated error",
	il faut ajouter cette ligne dans la clé 'Error' de votre fichier
config/app.php :
	    'Error' => [
	    		...
	        'errorLevel' => E_ALL & ~E_USER_DEPRECATED,
	       	...
	    ],
Showing 2 changed files with 44 additions and 386 deletions   Show diff stats
README.md
... ... @@ -53,28 +53,29 @@ Logiciel testé et validé sur les configurations suivantes :
53 53  
54 54 VERSION ACTUELLE
55 55  
56   -Date: 25/03/2019
57   -Version: 2.11.2
  56 +Date: 26/03/2019
  57 +Version: 2.12.0
58 58 Author: EP
59   - Refactorisation des actions add() et edit() de MaterielsController + BUGFIX gestionnaire
  59 +Refactorisation de add() et edit() de Materiels + BUGFIX gestionnaire + Cleanup LDAP
60 60  
61   - DESCRIPTION :
62   - - Refactorisation des actions add() et edit() de MaterielsController en une seule fonction add_or_edit() car elles étaient très semblables
63   - - Gestionnaire de reference : maintenant bien sauvegardé (avant il était perdu...)
  61 +DESCRIPTION :
  62 + - GROS CLEANUP du code LDAP dans LdapConnectionsTable.php
  63 + - REFACTORISATION des actions add() et edit() de MaterielsController en une seule fonction add_or_edit() car elles étaient très semblables
  64 + - BUGFIX Gestionnaire de reference : maintenant bien sauvegardé (avant il était perdu...)
64 65  
65   - IMPORTANT :
66   - - Pour connaitre la version actuelle, taper "./VERSION"
67   - - Pour mettre à jour le code, utiliser ./UPDATE depuis la racine du projet (ne plus se contenter de faire "git pull")
68   - (UPDATE fait "git pull" mais il met aussi à jour la BD, seulement si nécessaire)
69   - - Pour s'assurer que la version récupérée est stable, taper "./TESTS.sh" (tout doit passer ok)
70   - - En cas de problème, taper ./SHOW_LOGS pour voir si les logs d'erreur peuvent aider
71   - - Pour que "./TESTS.sh" s'exécute sans "deprecated error",
72   - il faut ajouter cette ligne dans la clé 'Error' de votre fichier config/app.php
73   - 'Error' => [
74   - ...
75   - 'errorLevel' => E_ALL & ~E_USER_DEPRECATED,
76   - ...
77   - ],
  66 +IMPORTANT :
  67 + - Pour connaitre la version actuelle, taper "./VERSION"
  68 + - Pour mettre à jour le code, utiliser ./UPDATE depuis la racine du projet (ne plus se contenter de faire "git pull")
  69 + (UPDATE fait "git pull" mais il met aussi à jour la BD, seulement si nécessaire)
  70 + - Pour s'assurer que la version récupérée est stable, taper "./TESTS.sh" (tout doit passer ok)
  71 + - En cas de problème, taper ./SHOW_LOGS pour voir si les logs d'erreur peuvent aider
  72 + - Pour que "./TESTS.sh" s'exécute sans "deprecated error",
  73 + il faut ajouter cette ligne dans la clé 'Error' de votre fichier config/app.php :
  74 + 'Error' => [
  75 + ...
  76 + 'errorLevel' => E_ALL & ~E_USER_DEPRECATED,
  77 + ...
  78 + ],
78 79  
79 80  
80 81 Version majeure en cours : 2.10 (https://projects.irap.omp.eu/versions/207)
... ...
src/Model/Table/LdapConnectionsTable.php
1 1 <?php
2 2 namespace App\Model\Table;
3 3  
4   -/* TODO LIST
5   - *
6   -
7   -DONE:
8   -- 1) remplacer ldapAuthentication() par ldapAuthenticationNEW()
9   -- 2) remplacer getUserAttributes() par getLdap1UserOrAllUsersAttributes()
10   -- 3) virer getLdap1UserOrAllUsersAttributes() et merger son code dans la seule fonction qui l'appelle : searchLdap()
11   -- 4) virer getUserAttributes() et getLdap1UserOrAllUsersAttributes()
12   -
13   -- 5) getAllLdapUsersNEW() pour remplacer getAllLdapUsers()
14   -
15   -TODO:
16   -- ajouter just_these ?
17   -- TableRegistry::get() à remplacer par TableRegistry::getTableLocator()->get()
18   -
19   - *
20   - */
21   -
22   -
23   -
24   -
25 4 use Cake\ORM\Table;
26 5 use Cake\ORM\TableRegistry;
27 6 use Cake\Auth\DefaultPasswordHasher;
28 7 use Cake\Core\Exception\Exception;
29 8  
  9 +
30 10 class LdapConnectionsTable extends AppTable
31 11 {
32 12  
... ... @@ -230,35 +210,6 @@ class LdapConnectionsTable extends AppTable
230 210 return TRUE;
231 211 }
232 212  
233   - /**
234   - * @return $users_fetched or FALSE
235   - // REAL or FAKE LDAP
236   - public function getAllLdapUsersOLD()
237   - {
238   - try {
239   - if ($this->checkConfiguration()) {
240   -
241   - // REAL LDAP
242   - if ($this->LDAP_USED) {
243   -
244   - $ldapConnection = ldap_connect($this->host, $this->port);
245   - ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
246   -
247   - $results = ldap_search($ldapConnection, $this->baseDn, $this->filter);
248   -
249   - $res = ldap_get_entries($ldapConnection, $results);
250   - } // FAKE LDAP
251   - else {
252   - $res = $this->fakeLDAPUsers;
253   - }
254   - return $res;
255   - }
256   - }
257   - catch (Exception $e) {}
258   -
259   - return false;
260   - }
261   - */
262 213  
263 214 /**
264 215 * @return $users_fetched or FALSE
... ... @@ -281,18 +232,7 @@ class LdapConnectionsTable extends AppTable
281 232 // CACHE the new user in DB for next time
282 233 if ($users_fetched !== FALSE) $this->saveAllUsersInDB($users_fetched);
283 234 }
284   - /*
285   - $ldapConnection = ldap_connect($this->host, $this->port);
286   - ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
287   -
288   - // Binding optionnel
289   - if ($this->ldap_authentified) $ldapbind = ldap_bind($ldapConnection, $this->bindDn, $this->bindPass)
290   - or die("Could not bind to LDAP server.". ldap_error($ldapConnection) );
291   -
292   - $results = ldap_search($ldapConnection, $this->baseDn, $this->filter);
293   -
294   - $res = ldap_get_entries($ldapConnection, $results);
295   - */
  235 +
296 236 }
297 237  
298 238 // FAKE LDAP
... ... @@ -310,113 +250,7 @@ class LdapConnectionsTable extends AppTable
310 250 return FALSE;
311 251 }
312 252  
313   -
314 253  
315   - /*
316   - // REAL LDAP only
317   - // TODO: avirer, VIEUX CODE, à remplacer par getLdap1UserOrAllUsersAttributes()
318   - // $userName = login
319   - public function getUserAttributes($ldapConnection, $userName)
320   - {
321   - try {
322   -
323   - if ($this->checkConfiguration()) {
324   - //if ($this->LDAP_USED) {
325   - //$ldapConnection = ldap_connect($this->host, $this->port);
326   - //ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
327   - $results = ldap_search($ldapConnection, $this->baseDn, '(' . $this->authenticationType . '=' . $userName . ')');
328   - return ldap_get_entries($ldapConnection, $results);
329   - /STAR
330   - } else
331   - return array(
332   - $this->getFakeLdapUser($userName)
333   - );
334   - STAR/
335   - }
336   - } catch (Exception $e) {}
337   -
338   - return false;
339   - }
340   - */
341   -
342   -
343   -
344   - /*
345   - //CALL : $filter = "(&".$this->filter."(".$this->authenticationType . '=' . $user_login."))";
346   -
347   - // REAL LDAP only
348   - /ST
349   - * @param string $ldapConnection
350   - * @param string $filter
351   - * @param array $just_these
352   - * @param string $userName (= login) => for FAKE LDAP only
353   - * @return $res = ldap search result (1 user or all users attributes) or FALSE
354   - ST/
355   - //public function getUserAttributes($userName, $ldapConnection='', $filter='', $just_these=[])
356   - //public function getUserAttributes($ldapConnection='', $filter='', $just_these=[], $userName=NULL)
357   - //public function getLdapUsersAttributes($ldapConnection, $filter='', $just_these=[])
358   - public function getLdap1UserOrAllUsersAttributes($ldapConnection, $user_login, $filter='', $just_these=[])
359   - {
360   - try {
361   - if ($this->checkConfiguration()) {
362   -
363   - // LDAP mode
364   - //if ($this->LDAP_USED) {
365   - /ST (EP)
366   - Fonction ldap_search ($link_identifier, $base_dn, $filter, array $attributes = null, $attrsonly = null, $sizelimit = null, $timelimit = null, $deref = null)
367   - Concernant le paramètre $attributes (ici, $just_these) :
368   - - An array of the required attributes, e.g. array("mail", "sn", "cn").
369   - - Note that the "dn" is always returned irrespective of which attributes types are requested.
370   - Telle que notre connexion au LDAP est conçue, on s'attend à recevoir AU MINIMUM
371   - ces attributs dans la réponse de la fonction ldap_search():
372   - - 'sn'
373   - - 'mail'
374   - - 'givenname'
375   - - 'uid'
376   - - 'userpassword'
377   - Pour récupérer tous ces attributs, il ne faut pas utiliser la variable $just_these,
378   - ou alors il faut qu'elle soit égale à un tableau vide ([]).
379   - (par exemple, si elle vaut "['cn']" ça signifie qu'on veut "seulement l'attribut 'cn'")
380   - Quand on n'utilise pas $just_these, la fonction ldap_search() retourne TOUS les attributs disponibles,
381   - donc c'est le comportement qu'on veut ici.
382   - ST/
383   -
384   - //$ldapConnection = ldap_connect($this->host, $this->port);
385   - //ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
386   - // OLD: $results = ldap_search($ldapConnection, $this->baseDn, '(' . $this->authenticationType . '=' . $userName . ')');
387   - // NEW: $filter = "(&".$this->filter."(".$this->authenticationType . '=' . $user_login."))";
388   -
389   - // OLD à virer
390   - /ST
391   - $filter = '(' . $this->authenticationType . '=' . $user_login . ')';
392   - $just_these = [];
393   - $results = ldap_search($ldapConnection, $this->baseDn, $filter);
394   - return ldap_get_entries($ldapConnection, $results);
395   - ST/
396   -
397   - // $filter = "(&".$this->filter. "(".$this->authenticationType . '=' . $user_login."))";
398   - $results = ldap_search($ldapConnection, $this->baseDn, $filter, $just_these)
399   - or die("Could not search to LDAP server response was: " . ldap_error($ldapConnection) );
400   - $res = ldap_get_entries($ldapConnection, $results);
401   - //echo $info["count"]." entries returned\n";
402   - return $res;
403   - //}
404   -
405   - // FAKE LDAP mode
406   - //else return array( $this->getFakeLdapUser($userName) );
407   - //else return $this->fakeLDAPUsers;
408   -
409   - }
410   - } catch (Exception $e) {
411   - //echo 'Exception LDAP : ', $e->getMessage(), "\n";
412   - }
413   -
414   - return false;
415   - }
416   - */
417   -
418   -
419   -
420 254 public function getAuthenticationType()
421 255 {
422 256 return $this->authenticationType;
... ... @@ -563,96 +397,47 @@ class LdapConnectionsTable extends AppTable
563 397  
564 398  
565 399  
566   - /*
567   - CALL
568   -
569   - $filter = "(&".$this->filter."(".$this->authenticationType . '=' . $user_login."))";
570   - //TODO: optimisation, refactoriser si comportement général
571   - //$binddn .= ','.$this->baseDn;
572   - $user_fetched = $this->searchLdap($filter, $just_these, $user_login, $user_password);
573   - */
574   -
575   -
576   -
577 400 // REAL LDAP only
  401 + // SEARCH en 4 étapes
578 402 private function searchLdap($filter, $just_these, $user_login=NULL, $user_password=NULL) {
579 403  
580   - /*
581   - * OLD CODE QUI MARCHE
582   -
583   - $ldapConnection = ldap_connect($this->host, $this->port);
584   - ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
585   -
586   - - From ldapAuthentication():
587   - if (@ldap_bind($ldapConnection, $this->authenticationType . '=' . $user_login . ',' . $this->baseDn, $user_password))
588   - return $this->getUserAttributes($user_login)[0];
589   -
590   - - From getUserAttributes():
591   - $results = ldap_search($ldapConnection, $this->baseDn, $this->filter);
592   - $search = ldap_get_entries($ldapConnection, $results);
593   -
594   - */
595   -
596   - // CONNEXION
  404 + // (1) CONNEXION
597 405 $ldapConnection = ldap_connect($this->host, $this->port)
598 406 or die("Could not connect to $this->host (port $this->port)");
599 407  
600 408 if ($ldapConnection) {
601 409  
602   - // OPTIONS
  410 + // (2) SET OPTIONS
603 411 ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
604 412  
605   - // BINDING
  413 + // (3) BINDING OPTIONNEL (true by default if not done)
606 414 $ldapbind = TRUE;
607 415  
  416 + // - Authentified LDAP
  417 + // (EP) ATTENTION: Ne pas faire die() ici car ça stopperait net la mauvaise connexion d'un utilisateur, avec ce message d'erreur !
  418 + // Il vaut mieux retourner FALSE et afficher un joli message de refus sur la page d'accueil
608 419 if ($this->ldap_authentified)
609   - // - Authentified
610   - $ldapbind = ldap_bind($ldapConnection, $this->bindDn, $this->bindPass)
611   - or die("Could not bind to LDAP server.". ldap_error($ldapConnection) );
612   -
613   - else {
614   - // - Anonymous
615   - // En cas de LDAP anonyme, binding quand même pour vérifier le mot de passe de l'utilisateur.
616   - // Sans cette ligne, on passe avec n'importe quel password !!!
617   - if ($user_login && $user_password)
618   - $ldapbind = ldap_bind($ldapConnection, $this->authenticationType . '=' . $user_login . ',' . $this->baseDn, $user_password);
  420 + //$ldapbind = @ldap_bind($ldapConnection, $this->bindDn, $this->bindPass);
  421 + $ldapbind = ldap_bind($ldapConnection, $this->bindDn, $this->bindPass);
  422 + //or die("Could not bind to LDAP server.". ldap_error($ldapConnection) );
  423 +
  424 + // - Anonymous LDAP
  425 + // (EP) En cas de LDAP anonyme, binding uniquement si login session (pour vérifier le mot de passe de l'utilisateur).
  426 + // Car sans cette ligne, on passe avec n'importe quel password !!!
  427 + // NB: pas de die() ici, voir remarque juste au-dessus
  428 + else if ($user_login && $user_password)
  429 + //$ldapbind = @ldap_bind($ldapConnection, $this->authenticationType . '=' . $user_login . ',' . $this->baseDn, $user_password);
  430 + $ldapbind = ldap_bind($ldapConnection, $this->authenticationType . '=' . $user_login . ',' . $this->baseDn, $user_password);
619 431 // or die("Could not bind to LDAP server: ". ldap_error($ldapConnection) );
620   - // (EP) Ne pas faire die() ici car ça stopperait net la mauvaise connexion d'un utilisateur, avec ce message d'erreur
621   - // Il vaut mieux retourner FALSE et afficher un joli message de refus sur la page d'accueil
622   - /*
623   - else {
624   - $ldapbind = TRUE;
625   - // function ldap_bind ($link_identifier, $bind_rdn = null, $bind_password = null)
626   - //debug("log, pass= " . $user_login . ' ' . $user_password);
627   - //if ($user_login && $user_password) $ldapbind = ldap_bind($ldapConnection, $this->authenticationType.'='.$user_login, $user_password);
628   - if ($user_login && $user_password) $ldapbind = ldap_bind($ldapConnection, $this->authenticationType . '=' . $user_login . ',' . $this->baseDn, $user_password);
629   - //debug("ldapbind " . $ldapbind);
630   - }
631   - */
632   - }
633 432  
634   - // SEARCH
  433 + // (4) SEARCH
635 434 if ($ldapbind) {
636   -
637   - // OLD
638   - //$search = $this->getUserAttributes($ldapConnection, $user_login);
639   - // NEW
640   - //$search = $this->getLdap1UserOrAllUsersAttributes($ldapConnection, $user_login, $filter, $just_these);
641   -
642   - // OLD à virer
643   - /*
644   - $filter = '(' . $this->authenticationType . '=' . $user_login . ')';
645   - $just_these = [];
646   - $results = ldap_search($ldapConnection, $this->baseDn, $filter);
647   - return ldap_get_entries($ldapConnection, $results);
648   - */
649 435 // $filter = "(&".$this->filter."(".$this->authenticationType . '=' . $user_login."))";
650 436 // ex: (&(compteinfo=Oui)(uid=epallier))
651 437 $results = ldap_search($ldapConnection, $this->baseDn, $filter, $just_these)
652 438 or die("Could not search to LDAP server response was: " . ldap_error($ldapConnection) );
653 439 $search = ldap_get_entries($ldapConnection, $results);
654   - //echo $info["count"]." entries returned\n";
655   -
  440 + //echo $results["count"]." entries returned\n";
656 441 if ($search === FALSE) die("Could not get user attributes from LDAP server, response was: " . ldap_error($ldapConnection) );
657 442 //return $search[0];
658 443 return $search;
... ... @@ -662,76 +447,7 @@ class LdapConnectionsTable extends AppTable
662 447  
663 448 // Il y a eu un pb, utilisateur non reconnu
664 449 return FALSE;
665   -
666   - }
667   -
668   -
669   -
670   - // REAL LDAP only
671   - /*
672   - private function checkAndFetchUserFromLdap($user_login, $user_password) {
673   - // Set LDAP parameters
674   - // - Liste des attributs à récupérer dans le ldap (vide = TOUS les attributs)
675   - $just_these = [];
676   - // TODO: vérifier si cette ligne est bien utile ou pas... (avant on faisait ça)
677   - //if (! $this->ldap_authentified) $just_these = array("cn");
678   -
679   - /* Examples :
680   - *
681   - * - ANONYMOUS LDAP (IRAP) :
682   - * $this->authenticationType = 'uid'
683   - * $this->baseDn = "ou=users,dc=irap,dc=omp,dc=eu"
684   - *
685   - * - AUTHENTIFIED LDAP connection (CRAL) :
686   - * $this->authenticationType = 'sAMAccountName'
687   - * $this->baseDn = "dc=univ-lyon1,dc=fr"
688   - * $binddn="CN=svc_ldap_cral,OU=users,OU=27,OU=sim,OU=univ-lyon1,DC=univ-lyon1,DC=fr";
689   - * ($binddn = "CN=svc_ldap_cral,OU=users,OU=27,OU=sim,OU=univ-lyon1,".$this->baseDn;)
690   - * $filter = "(&(objectClass=person)(memberOf:1.2.840.113556.1.4.1941:=cn=ucbl.osu.cral,ou=groups,ou=27,ou=sim,ou=univ-lyon1,dc=univ-lyon1,dc=fr))";
691   - STAR/
692   - // Construction du filtre avec le filtre de la base de données avec un & sur le login de l'utilisateur
693   - // Si aucun filtre n'est défini dans la base de données on aura juste (& ($this->authenticationType=$user_login))
694   - // ex: "(&(objectClass=person)(memberOf:1.2.840.113556.1.4.1941:=cn=ucbl.osu.cral,ou=groups,ou=27,ou=sim,ou=univ-lyon1,dc=univ-lyon1,dc=fr)(sAMAccountName=$user_login))";
695   - $filter = "(&".$this->filter."(".$this->authenticationType . '=' . $user_login."))";
696   -
697   - //TODO: optimisation, refactoriser si comportement général
698   - //$binddn .= ','.$this->baseDn;
699   -
700   - $res = $this->searchLdap($filter, $just_these, $user_login, $user_password);
701   - if ($res != FALSE) return $res[0];
702   -
703   - /*
704   - // CONNEXION
705   - $ldapConnection = ldap_connect($this->host, $this->port)
706   - or die("Could not connect to $this->host (port $this->port)");
707   -
708   - if ($ldapConnection) {
709   -
710   - // OPTIONS
711   - ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
712   -
713   - // BINDING
714   - if ($this->ldap_authentified)
715   - $ldapbind = ldap_bind($ldapConnection, $this->bindDn, $this->bindPass); // or die("Could not bind to LDAP server.". ldap_error($ldapConnection) );
716   - // En cas de LDAP anonyme, binding quand même pour vérifier le mot de passe de l'utilisateur.
717   - // Sans cette ligne, on passe avec n'importe quel password !!!
718   - else
719   - $ldapbind = ldap_bind($ldapConnection, $this->authenticationType.'='.$user_login, $user_password);
720   -
721   - // SEARCH
722   - if ($ldapbind) {
723   - $search = $this->getUserAttributes($user_login, $ldapConnection, $filter, $just_these);
724   - if ($search === false) die("Could not get user attributes from LDAP server, response was: " . ldap_error($ldapConnection) );
725   - return $search[0];
726   - }
727   -
728   - }
729   - STAR/
730   -
731   - // Il y a eu un pb, utilisateur non reconnu
732   - return FALSE;
733   - }
734   - */
  450 + } // searchLdap()
735 451  
736 452  
737 453 // TODO: implement
... ... @@ -741,51 +457,6 @@ class LdapConnectionsTable extends AppTable
741 457 }
742 458  
743 459  
744   -
745   -
746   - /*
747   - * @param string $user_login
748   - * @param string $user_password
749   - * @return logged user LDAP attributes or FALSE if user not found in LDAP
750   - */
751   - /*
752   - public function ldapAuthenticationOLD($user_login, $user_password) {
753   - try {
754   - if ($this->checkConfiguration()) {
755   - if ($this->LDAP_USED) {
756   - if (strlen(trim($user_password)) == 0)
757   - return FALSE;
758   - $ldapConnection = ldap_connect($this->host, $this->port);
759   - ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
760   - if (@ldap_bind($ldapConnection, $this->authenticationType . '=' . $user_login . ',' . $this->baseDn, $user_password)) {
761   - return $this->getUserAttributes($user_login)[0];
762   - /STAR
763   - * } else {
764   - * return false;
765   - STAR/
766   - }
767   - } else {
768   - $user = $this->getFakeLdapUser($user_login);
769   - // debug($user);
770   - if ($user === false)
771   - return FALSE;
772   - // $this->authenticationType peut valoir "uid" ou "cn"... (par défaut "uid" pour le fake ldap, à confirmer...)
773   - // if ($user['uid'][0] == "_NouvelUtilisateur_username" && $user['userpassword'][0] == "_NouvelUtilisateur_password") return $user;
774   - // if ($user[$this->authenticationType][0] == "_NouvelUtilisateur_username" && $user['userpassword'][0] == "_NouvelUtilisateur_password") return $user;
775   - if ($user[$this->authenticationType][0] == $this->getTheFakeLdapUser()['login'] && $user['userpassword'][0] == $this->getTheFakeLdapUser()['pass'])
776   - return $user;
777   - if ((new DefaultPasswordHasher())->check($user_password, $user['userpassword'][0]))
778   - return $user;
779   - // if ($user != false && $user['userpassword'][0] == $password) {
780   - }
781   - }
782   - } catch (Exception $e) {
783   - //echo 'Exception LDAP : ', $e->getMessage(), "\n";
784   - }
785   - // Il y a eu un problème, l'utilisateur n'est pas reconnu
786   - return FALSE;
787   - } // end ldapAuthentication()
788   - */
789 460  
790 461 /*
791 462 * @param string $user_login
... ... @@ -802,20 +473,7 @@ class LdapConnectionsTable extends AppTable
802 473  
803 474 // No connexion allowed without password
804 475 if (strlen(trim($user_password)) == 0) return FALSE;
805   -
806   - /*
807   - // VIEUX CODE QUI MARCHE !!!
808   - $ldapConnection = ldap_connect($this->host, $this->port);
809   - ldap_set_option($ldapConnection, LDAP_OPT_PROTOCOL_VERSION, 3);
810   - if (@ldap_bind($ldapConnection, $this->authenticationType . '=' . $user_login . ',' . $this->baseDn, $user_password)) {
811   - return $this->getUserAttributes($user_login)[0];
812   - /STAR
813   - * } else {
814   - * return false;
815   - STAR/
816   - }
817   - */
818   -
  476 +
819 477 // TODO: optimisation possible
820 478 // 1) Search user in CACHE (DB)
821 479 $user_fetched = $this->checkAndFetchUserFromDB($user_login, $user_password);
... ... @@ -870,7 +528,6 @@ class LdapConnectionsTable extends AppTable
870 528 return FALSE;
871 529  
872 530 } // end ldapAuthentication()
873   -
874 531  
875 532  
876 533  
... ...