Naughty bits of active directory ldap queries
return the :memberof attrs + parents, recursively
# File lib/ldap_fluff/ad_member_service.rb, line 19 def _groups_from_ldap_data(payload) data = [] if !payload.nil? first_level = payload[:memberof] total_groups = _walk_group_ancestry(first_level) data = (get_groups(first_level + total_groups)).uniq end data end
recursively loop over the parent list
# File lib/ldap_fluff/ad_member_service.rb, line 30 def _walk_group_ancestry(group_dns = []) set = [] group_dns.each do |group_dn| search = @ldap.search(:base => group_dn, :scope => Net::LDAP::SearchScope_BaseObject, :attributes => ['memberof']) if !search.nil? && !search.first.nil? group = search.first set += _walk_group_ancestry(group[:memberof]) set += group[:memberof] end end set end
Generated with the Darkfish Rdoc Generator 2.