From 35fc21c5290b07a5bfa244f710d0caaf45c4f8a1 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 22 Dec 2009 17:35:38 +0000 Subject: [PATCH] Fix: on verifie si le DN existe sinon nous avons une erreur sur le "olddn" lorsqu'on veut l'effacer --- .../interface_modLdap_Ldapsynchro.class.php | 46 +++++++++++++++++-- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php b/htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php index b8eb919e8ac..a37cf8e034f 100644 --- a/htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php +++ b/htdocs/includes/triggers/interface_modLdap_Ldapsynchro.class.php @@ -85,10 +85,10 @@ class InterfaceLdapsynchro } /** - * \brief Fonction appel�e lors du d�clenchement d'un �v�nement Dolibarr. - * D'autres fonctions run_trigger peuvent etre pr�sentes dans includes/triggers + * \brief Fonction appelee lors du declenchement d'un evenement Dolibarr. + * D'autres fonctions run_trigger peuvent etre presentes dans includes/triggers * \param action Code de l'evenement - * \param object Objet concern� + * \param object Objet concerne * \param user Objet user * \param lang Objet lang * \param conf Objet conf @@ -96,8 +96,8 @@ class InterfaceLdapsynchro */ function run_trigger($action,$object,$user,$langs,$conf) { - // Mettre ici le code � ex�cuter en r�action de l'action - // Les donn�es de l'action sont stock�es dans $object + // Mettre ici le code a executer en reaction de l'action + // Les donnees de l'action sont stockees dans $object if (! $conf->ldap->enabled) return 0; // Module non actif @@ -137,6 +137,15 @@ class InterfaceLdapsynchro $oldinfo=$object->oldcopy->_load_ldap_info(); $olddn=$object->oldcopy->_load_ldap_dn($oldinfo); + + // Verify if entry exist + $container=$object->oldcopy->_load_ldap_dn($oldinfo,1); + $search = "(".$object->oldcopy->_load_ldap_dn($oldinfo,2).")"; + $records=$ldap->search($container,$search); + if (sizeof($records) && $records['count'] == 0) + { + $olddn = ''; + } $info=$object->_load_ldap_info(); $dn=$object->_load_ldap_dn($info); @@ -205,6 +214,15 @@ class InterfaceLdapsynchro $oldinfo=$object->oldcopy->_load_ldap_info(); $olddn=$object->oldcopy->_load_ldap_dn($oldinfo); + + // Verify if entry exist + $container=$object->oldcopy->_load_ldap_dn($oldinfo,1); + $search = "(".$object->oldcopy->_load_ldap_dn($oldinfo,2).")"; + $records=$ldap->search($container,$search); + if (sizeof($records) && $records['count'] == 0) + { + $olddn = ''; + } $info=$object->_load_ldap_info(); $dn=$object->_load_ldap_dn($info); @@ -266,6 +284,15 @@ class InterfaceLdapsynchro $oldinfo=$object->oldcopy->_load_ldap_info(); $olddn=$object->oldcopy->_load_ldap_dn($oldinfo); + + // Verify if entry exist + $container=$object->oldcopy->_load_ldap_dn($oldinfo,1); + $search = "(".$object->oldcopy->_load_ldap_dn($oldinfo,2).")"; + $records=$ldap->search($container,$search); + if (sizeof($records) && $records['count'] == 0) + { + $olddn = ''; + } $info=$object->_load_ldap_info(); $dn=$object->_load_ldap_dn($info); @@ -380,6 +407,15 @@ class InterfaceLdapsynchro $oldinfo=$object->oldcopy->_load_ldap_info(); $olddn=$object->oldcopy->_load_ldap_dn($oldinfo); + + // Verify if entry exist + $container=$object->oldcopy->_load_ldap_dn($oldinfo,1); + $search = "(".$object->oldcopy->_load_ldap_dn($oldinfo,2).")"; + $records=$ldap->search($container,$search); + if (sizeof($records) && $records['count'] == 0) + { + $olddn = ''; + } $info=$object->_load_ldap_info(); $dn=$object->_load_ldap_dn($info);