"; try{ require_once ("config.php"); function __autoload($className){ require_once ("api/$className.php"); } global $settings; // connexion à l'annuaire $ldap = new LDAP($settings['ldap.url'], $settings['ldap.base']); $ldap->bind($settings['ldap.userdn'], $settings['ldap.passwd']); // cherche l'utilisateur toto // équivalent à $ldap->searchEntries($settings['ldap.base'],"(uid=toto)"); $result = $ldap->find("(uid=toto)"); // affiche Nombre d'entrées : 1 echo "Nombre d'entrées : " . count($result) . "\n"; try{ // renvoie le premier entrée trouvée sinon renvoie une exception et sort de ce bloc $node = $result->getFirstNode(); echo "effacement de l'entrée toto existante...\n"; // efface l'entrée dans le ldap $node->remove(); // une quelconque tentative de lecture ou modification de l'objet lèvera une exception $node['userPassword'] = "test"; }catch(Exception $e){ echo "Erreur:: ".$e->getMessage()."\n"; } // ajoute l'entrée toto $ldap->addNode("uid=toto,".$settings['ldap.base'],array( 'objectClass' => array("account","simpleSecurityObject"), 'uid' => "toto", 'userPassword' => "tutu")); // recherche de nouveau l'entrée toto $result = $ldap->find("(uid=toto)"); // récupère la première entrée $node = $result->getFirstNode(); /* * affiche : Type d'enregistrement de l'utilisateur toto : account, simpleSecurityObject * la méthode appelée est LDAPAttribute::__toString() qui affiche toules les valeurs * à la suite séparées pas dees virgules */ echo "Type d'enregistrement de l'utilisateur toto : $node[objectClass]\n"; /* * modifie l'attribut userPassword de l'entrée toto avec le mot de passe tutu, mais crypté cette fois-ci */ $node['userPassword'] = LDAP::hashPasswd('tutu',LDAP::SSHA); /* * la ligne suivante affichera : Mot de passe de l'utilisateur toto : toutou */ echo "Mot de passe de l'utilisateur toto : $node[userPassword]\n"; /* * vérifiont que l'entrée du LDAP est bien mise à jour : */ $result = $ldap->find("(uid=toto)"); $node = $result->getFirstNode(); /* * la ligne suivante affichera : Mot de passe de l'utilisateur toto : toutou */ echo "Mot de passe de l'utilisateur toto : $node[userPassword]\n"; /* * C'est gagné */ }catch(Exception $e){ echo $e->getMessage()."\n".$e->getTraceAsString(); } echo ""; ?>