[OT] Ruby-Ldap: borrar un "ou" o todas sus entradas

Hola, estoy usando la librería Ruby-LDAP para un script en Ruby (más
adelante
lo implementaré en ROR seguramente).

Sólo me falta un detalle y consiste en que no sé cómo borrar todos los
hijos
de una entrada (ou) o simplemente cómo borrar esa ou y todos sus hijos.

Si uso:
conn.delete(“ou=prueba, dc=dominio, dc=org”)
me devuelve un error:
`delete’: Operation not allowed on non-leaf (LDAP::ResultError)

Esto sé que es normal al menos usando el comando “ldapdelete”, puesto
que sólo
se puede borrar un ou si no tiene hijos. Pensaba que tal vez la librería
Ruby-LDAP incorporase algún método para borrar una ou y sus miembros.

En caso de que no sea así, ¿sabéis cómo hacer para que borre todos los
miembros de un ou?
Por supuesto he probado inocentemente con:
conn.delete("cn=,ou=prueba, dc=dominio, dc=org")
y no funciona, intenta buscar un cn=
literalmente.

Comento también que he buscado bastante incluso sobre el comando
“ldapdelete”
(que sería lo de más bajo nivel) y no he encontrado nada sobre cómo
borrar
todos los hijos de una entrada.

¿Alguien sabe cómo hacerlo?

Muchas gracias.

no sé si hay aguna forma más eficiente, pero una opción sencilla sería
usar un conn.search2 buscando por “ou=prueba” para el base_dn
“dc=dominio, dc=org” y para cada entrada que obtengas recuperar el
atributo dn y entonces ya puedes lanzar un conn.delete uno a uno

saludos,

j

El Domingo, 19 de Noviembre de 2006 01:04, javier ramirez escribió:

no sé si hay aguna forma más eficiente, pero una opción sencilla sería
usar un conn.search2 buscando por “ou=prueba” para el base_dn
“dc=dominio, dc=org” y para cada entrada que obtengas recuperar el
atributo dn y entonces ya puedes lanzar un conn.delete uno a uno

Mil gracias, es lo que necesitaba. Pego a continuación el fragmento de
código
por si le es sirve a alguien más:

conn.search(
       LDAP_DIR,
       LDAP::LDAP_SCOPE_SUBTREE,
       "(objectclass=inetOrgPerson)"
) { |entry|  ldap_con.delete(entry.dn) }

Un saludo.

PD: He usado “search” en vez de “search2” ni sé porqué, pero la verdad
es que
no encuentro documentación sobre el API en ningún sitio.