dolibarr 3.6.2 - Module LDAP et adhérents

Bonjour

Je souhaite expérimenter Dolibarr pour une gestion d’association.

Je prépare une maquette pour vérifier le bon fonctinnement de tous les produits (open source) avec un annuaire LDAP. J’ai choisi Samba 4. Mon annuaire est est opérationnel, et je tente d’associer un Dolibarr fraichement installé.

Dolibarr semble correctement configuré et il réussit les tests de création et suppression d’un utilisateur spécimen.

Par contre si je teste la modification d’un utilisateur, Dolibarr reporte une erreur provenant du serveur LDAP :

|code]67 Operation not allowed on RDN Operation not allowed on RDN[/code]

En passant, Il y a apparemment un petit souci, l’erreur est affichée deux fois.

En cherchant dans le code source je remarque que le spécimen est effacé, créé, puis effacé. Seule la création sert à valider le bon fonctionnement de Dolibarr avec le serveur d’annuaire.

J’ai aussi tenté de lancer manuellement un ldapmodify avec le fichier ldif produit par Dolibarr. ldapmodify attend un contenu avec une syntaxe différente à celle de ldapadd. Le fichier n’est donc pas exploitable pour faire un test manuel.

J’ai aussi comparé le comportement d’un contrôleur windows 2008 R2 avec la même installation de Dolibarr (au cas où samba 4 ne serait pas tout à fait identique à un AD). Le résultat est strictement le même (ce qui est une bonne nouvelle).

Si un dveloppeur veut bien confirmer ces problèmes, je créerai des tickets sur github pour :
- demander l’amélioration des tests de dolibarr sur l’annuaire
- reporter le bug lié à la modification d’un adhérent

Bonjour

J’ai eu le même problème avec l’annuaire AD LDS sur Microsoft serveur 2012 (Dolibarr 3.6.2)
Je crois avoir compris que l’attribut CN est reservé au système et donc calculé automatiquement sur base du sn et du givenName.

Pour contourner cette difficulté qui ressort de la variable $Info utilisée par dolibarr dans les fonctions "_load_ldap_info() ",
Tu peux modifier la ligne 459 $result=@ldap_modify($this->connection, $dn, $Info); du fichier ldap.class.php (dans le dossier Core) par $result=@ldap_modify($this->connection, $dn, array_splice ($info, 0, 1));

Ce qui te permet de ne plus envoyer la valeur cn puisqu’elle est automatiquement calculée par le serveur.

A+