die mslin: Mit PHP aus LDAP eine Gruppe löschen

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

  1. 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

    --
    Ab einem gewissen Erkenntnisstand ist die Versuchung wohl zu groß, in diesem und seinen begleitenden Errungenschaften zu verharren.
    Das nenne ich Aufblick zu den Stufen des Tempels von der geistigen Gosse aus!
  2. 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