LDAP: add delete_all_users method, use in seeds

This commit is contained in:
2024-03-13 14:27:39 +01:00
parent 38b3d68fd5
commit 06521d1c34
2 changed files with 7 additions and 2 deletions

View File

@@ -34,14 +34,17 @@ class LdapService < ApplicationService
client.delete dn: dn
client.get_operation_result.code
end
def delete_all_users!
delete_all_entries!(objectclass: "person")
end
def delete_all_entries!
def delete_all_entries!(objectclass: "*")
if Rails.env.production?
raise "Mass deletion of entries not allowed in production"
end
filter = Net::LDAP::Filter.eq("objectClass", "*")
filter = Net::LDAP::Filter.eq("objectClass", objectclass)
entries = client.search(base: @suffix, filter: filter, attributes: %w{dn})
entries.sort_by!{ |e| e.dn.length }.reverse!