Mit PHP aus LDAP eine Gruppe löschen
die mslin
- php
Hallo,
habe mir ein PHP gebastelt, daß mir meinen Kundenstamm in mein LDAP Verzeichnis einschreibt.
Das klappt auch ast rein!
Jedoch will ich das sich dieses "LDAP-Verzeichnis" jede Nacht selbst aktualisiert.
Nun will ich den LDAP Eintrag ou=test,dc=sz,dc=local mit allen untereinträgen löschen und danach neu erstellen.
Soweit so gut. Mein Problem ist nur, wenn das Verzeichnis "ou=test,...." leer ist, kann ich es löschen mit php.
Wenn jedoch Untereinträge vorhanden sind, wird der Zugriff auf's löschen verweigert.
Hab heute schon den ganzen Tag gegoogelt, jedoch irgendwie keine Lösung gefunden... nun hoffe ich auf eure Hilfe!
Hier mal mein Code zum Löschen:
$ldapLink =ldap_connect($ldapHost, $ldapPort)
or die("Can't establish LDAP connection");
if (ldap\_set\_option($ldapLink,LDAP\_OPT\_PROTOCOL\_VERSION,3))
{ }
if ($ldapLink) {
// bind with appropriate dn to give update access
$r=ldap\_bind($ldapLink,$ldapUser,$ldapPswd)
or die("Can't bind to server.");
if (ldap\_set\_option($ldapLink,LDAP\_OPT\_PROTOCOL\_VERSION,3))
{ }
// delete an entry
$r=ldap\_delete($ldapLink, "ou=test,dc=sz,dc=local");
if(!$r) die("ldap\_delete failure<br>");
ldap\_close($ldapLink);
echo "ldap\_delete success";
} else {
echo "Unable to connect to LDAP server";
}
?>
Fehlermeldung:
Warning: ldap_delete() [function.ldap-delete]: Delete: Operation not allowed on non-leaf in ......../ldap_t_01.php on line 34
ldap_delete failure
Könnt Ihr mir weiterhelfen?
Gruß
mslin
Hallo Mslin,
wenn Du nur leere Einträge löschen kannst, wo ist dann das Problem rekursiv alle Untereinträge zu erfassen und zu löschen?
Gruß aus Berlin!
eddi
Hallo
du scheinst gleich mehrere Foren mit deinem Problem zu beschäftigen.
Ein "non-leaf" Objekt hat mindestens ein Kind Element. Du kannst nur leere Objekte löschen.
Baue dir eine Funktion die zuerst im Tree sucht, ob es weitere Kind-Elemente darunter gibt. Wenn ja, lösche diese zuerst.
viele Grüße
hawk