implement and test bulk deletion
[matthijs/upstream/django-ldapdb.git] / ldapdb / models / query.py
index 0d4b0e12337a8467118b6b4d0de0fc4e85f80a74..4f0273cc2ed6478f7fcd78897251cd1732bb932d 100644 (file)
@@ -214,3 +214,15 @@ class QuerySet(BaseQuerySet):
                 query = Query(model, None, WhereNode)
         super(QuerySet, self).__init__(model=model, query=query)
 
                 query = Query(model, None, WhereNode)
         super(QuerySet, self).__init__(model=model, query=query)
 
+    def delete(self):
+        "Bulk deletion."
+        vals = ldapdb.connection.search_s(
+            self.model.base_dn,
+            ldap.SCOPE_SUBTREE,
+            filterstr=self.query._ldap_filter(),
+            attrlist=[],
+        )
+        # FIXME : there is probably a more efficient way to do this 
+        for dn, attrs in vals:
+            ldapdb.connection.delete_s(dn)
+