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 = get_groups(payload[:memberof]) total_groups = _walk_group_ancestry(first_level) data = (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(gids = []) set = [] gids.each do |g| filter = group_filter(g) & class_filter search = @ldap.search(:filter => filter, :base => @group_base) if !search.nil? && !search.first.nil? group = search.first set += get_groups(group[:memberof]) set += _walk_group_ancestry(set) end end set end
Generated with the Darkfish Rdoc Generator 2.