1

Topic: [GLPI 0.78.1] Connection CAS impossible

Bonjour,

Depuis la mise à jour à la version 0.78.1 les nouveaux utilisateurs ne sont plus reconnus, leur compte est bien créé en base de données mais aucune information n'est récupéré depuis le LDAP. Leur profil est vide et ils n'ont aucun droit.

J'ai l'impression qu'un ou plusieurs refactoring se soient mal passés https://forge.indepnet.net/projects/glp … v_to=11229

J'ai corrigé ça et supprimé une variable inutile dans ce patch (basé sur la branche 0.78-bugfixes du svn).

Index: auth.class.php
===================================================================
--- auth.class.php    (revision 13627)
+++ auth.class.php    (working copy)
@@ -517,12 +517,11 @@
          if ($this->getAlternateAuthSystemsUserLogin($authtype)
              && !empty($this->user->fields['name'])) {
 
-            $user = $this->user->fields['name'];
+            $login_name = $this->user->fields['name'];
             // Used for log when login process failed
-            $login_name = $user;
             $this->auth_succeded = true;
             $this->extauth       = 1;
-            $this->user_present  = $this->user->getFromDBbyName(addslashes($user));
+            $this->user_present  = $this->user->getFromDBbyName(addslashes($login_name));
             $this->user->fields['authtype'] = $authtype;
             // if LDAP enabled too, get user's infos from LDAP
             $this->user->fields["auths_id"] = $CFG_GLPI['authldaps_id_extra'];
@@ -537,23 +536,24 @@
                                                   $ldap_method["deref_option"]);
 
                   if ($ds) {
+                     $params['value'] = $login_name;
                      $params['method'] = AuthLdap::IDENTIFIER_LOGIN;
                      $params['fields'][AuthLdap::IDENTIFIER_LOGIN] = $ldap_method["login_field"];
                      $user_dn = AuthLdap::searchUserDn($ds,
                                                        array('basedn'      => $ldap_method["basedn"],
                                                              'login_field' => $ldap_method['login_field'],
                                                              'search_parameters' => $params,
-                                                             'user_params' => $user,
+                                                             'user_params' => $params,
                                                              'condition'   => $ldap_method["condition"]));
                      if ($user_dn) {
-                        $this->user->getFromLDAP($ds, $ldap_method, $user_dn, $user);
+                        $this->user->getFromLDAP($ds, $ldap_method, $user_dn['dn'], $login_name);
                      }
                   }
                }
             }
 
             // Reset to secure it
-            $this->user->fields['name']       = $user;
+            $this->user->fields['name']       = $login_name;
             $this->user->fields["last_login"] = $_SESSION["glpi_currenttime"];
 
          } else {

Il ne devrait théoriquement pas y avoir d'effet de bord.

En espérant que mon patch soit accepté pour la 0.78.2 smile

Bonne fin de semaine et merci pour votre boulot !

2

Re: [GLPI 0.78.1] Connection CAS impossible

Est-ce que vou spouvez simplement tester avec la version 0.78.1 bug fix qui inclus déjà des corrections à ce niveau là ?

Par exemple celle-là :
https://forge.indepnet.net/tarballs/glp … 17.tar.bz2

MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI :    Support     Contribute     References     Freshmeat

3

Re: [GLPI 0.78.1] Connection CAS impossible

je confirme le soucis.

MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI :    Support     Contribute     References     Freshmeat

4

Re: [GLPI 0.78.1] Connection CAS impossible

correction incluse pour la 0.78.2
https://forge.indepnet.net/issues/2587

MoYo - Julien Dombre - Association INDEPNET
Contribute to GLPI :    Support     Contribute     References     Freshmeat