Synchro LDAP suite migration 2.9 vers 3.0.6

Installation & Configuration du logiciel
Répondre
yannickq
Gsup LEVEL 2
Messages : 44
Enregistré le : mer. 13 mars 2013 14:49

Bonjour,

Je rencontre un soucis depuis la migration de 2.9.2 en 3.0.6, L'installation de la v3.0.0 et des différents patch c'est très bien déroulée.

Lors de la tentative de synchro LDAP, la simulation m'annonce désactiver plusieurs utilisateurs (environ 20 sur 150),Raison: Utilisateur non présent dans l'annuaire LDAP.)

Après quelques seconde de vérification, j'ai constaté que ce sont tous les utilisateurs ayant un login avec accent ou apostrophe (éèïî' ... oui je sais c'est pas top les accent dans les logins, choix historique difficile de changer ;p), auriez-vous une piste de recherche, il me semblait avoir eu le même genre de problème lors du passage de la 2.8 à la 2.9 mais j'imagine que le soucis provient d'une histoire d'encodage de caractères dans la table tusers ou la lecture du ldap.php, mais ce n'est pas trop mon truc les encodages ;)


Si vous avez une piste, merci !

Gestsup 3.1.35 - OS: Linux Debian 8 Jessie x86_64, Apache: 2.4.10, MySQL: 5.5.55-0+deb8u1, PHP: 5.6.30-0+deb8u1
yannickq
Gsup LEVEL 2
Messages : 44
Enregistré le : mer. 13 mars 2013 14:49

je viens de trouver l'anomalie : dans le fichier ldap.php ligne 362 (./core/ldap.php)

Code : Tout sélectionner

 if ($rparameters['ldap_type']==0) $samaccountname=$data[$i]['samaccountname'][0];  else $samaccountname=$data[$i]['uid'][0]; 
à remplacer par :

Code : Tout sélectionner

if ($rparameters['ldap_type']==0) $samaccountname=utf8_encode($data[$i]['samaccountname'][0]);  else $samaccountname=utf8_encode($data[$i]['uid'][0]);
l'encodage utf-8 était fait à plusieurs endroits sauf à celui-ci

Gestsup 3.1.35 - OS: Linux Debian 8 Jessie x86_64, Apache: 2.4.10, MySQL: 5.5.55-0+deb8u1, PHP: 5.6.30-0+deb8u1
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

Bonjour,

pouvez vous vérifier que votre fichier ./core/ldap.php et en version 3.0.6 ?
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
yannickq
Gsup LEVEL 2
Messages : 44
Enregistré le : mer. 13 mars 2013 14:49

Contrairement au 2 autres sujets ou je signale des anomalies alors que ma migration semble s'être mal passée ( fichiers en 3.0.0 ... ><)

ce fichier est bien avec l'entête commentée 3.0.6 :

################################################################################
# @Name : /core/ldap.php
# @Desc : page to synchronize users from LDAP to GestSup
# @call : /admin/user.php
# @Autor : Flox
# @Create : 15/10/2012
# @Update : 28/01/2014
# @Version : 3.0.6
################################################################################

Si vous me le demandez, c'est qu'à priori cette ligne avait déjà été corrigée ?

Gestsup 3.1.35 - OS: Linux Debian 8 Jessie x86_64, Apache: 2.4.10, MySQL: 5.5.55-0+deb8u1, PHP: 5.6.30-0+deb8u1
Avatar du membre
Flox
Administrateur du site
Messages : 9447
Enregistré le : jeu. 21 juin 2012 19:00

normalement c'est la ligne 117 qui gère cela dans la version 3.0.6:

Code : Tout sélectionner

if ($rparameters['ldap_type']==0) $samaccountname=utf8_encode($data[$i]['samaccountname'][0]);  else $samaccountname=utf8_encode($data[$i]['uid'][0]);
ensuite les lignes suivante se base sur cette conversion, ou alors il y a un autre problème...

pouvez vous nous donner vos versions serveur.
GestSup: 3.2.47 | Debian: 12 | Apache: 2.4.59 | MariaDB: 11.5.2 | PHP: 8.3.12 | https://doc.gestsup.fr/
yannickq
Gsup LEVEL 2
Messages : 44
Enregistré le : mer. 13 mars 2013 14:49

Pour ce qui est de mes serveurs, j'ai testé sur un AD windows 2003 R2 SP2 et AD windows 2008 R2,
la valeur renvoyée par

Code : Tout sélectionner

$rparameters['ldap_type']
est 0 .


Je n'ai pas passé des heures à chercher je vous avoue, mais toujours est-il qu'en copiant la ligne 117 à la ligne 362 le souci est résolu :)

Gestsup 3.1.35 - OS: Linux Debian 8 Jessie x86_64, Apache: 2.4.10, MySQL: 5.5.55-0+deb8u1, PHP: 5.6.30-0+deb8u1
Répondre