Bonjour à tous,
J’essaie de mettre à jour le script de syncro LDAP sync_users_ldap2dolibarr.php
qui se trouve dans le dossier /scripts/user
J’ai remarqué que l’update d’un utilisateur existant ne fonctionnait pas :
UserCreate # John Doe: login=john.doe, fullname=John Doe --> ERROR -6 ErrorLoginAlreadyExists
Dans le foreach
, le code commande par $fuser = new User($db);
Suivi par :
if ($conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_SID) {
$fuser->fetch('', '', $ldapuser[$conf->global->LDAP_KEY_USERS]); // Chargement du user concerné par le SID
} elseif ($conf->global->LDAP_KEY_USERS == $conf->global->LDAP_FIELD_LOGIN) {
$fuser->fetch('', $ldapuser[$conf->global->LDAP_KEY_USERS]); // Chargement du user concerné par le login
}
Et après il inscrit toutes les informations LDAP dans l’objet $fuser
:
$fuser->lastname = $ldapuser[$conf->global->LDAP_FIELD_NAME];
Ensuite vient une condition if ($fuser->id > 0)
pour soit mettre à jour l’utilisateur avec $fuser->update($user)
si il a été trouvé dans le fetch
ou le créer avec $fuser->create($user)
si non trouvé.
Seulement, même si l’utilisateur est déjà présent, le $fuser->id
est toujours à 0, donc il essaie de le créer et non de le mettre à jour.
J’en conclus donc que le fetch
ne fonctionne pas.
Je ne trouve aucune documentation sur les objets $user et $fuser.
Si quelqu’un peut m’aider