def walk_ldap_groups(groups, seen = [])
      groups.each do |g|
        next if seen.include? g
        seen << g
        walk_ldap_groups(ldap_member_of(g), seen)
      end
      seen
    end
def walk_ldap_groups(groups, seen = [])
      groups.each do |g|
        next if seen.include? g
        seen << g
        walk_ldap_groups(ldap_member_of(g), seen)
      end
      seen
    end
Searches (recursively) LDAP group membership tree
 @param [Array] groups to search group membership of
 @param [Array] seen the accumulated list of group membership, defaults to []
 @return [Array] results of searching group membership tree