diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/gitlab/ldap/adapter.rb | 6 | ||||
| -rw-r--r-- | lib/tasks/gitlab/check.rake | 40 | 
2 files changed, 15 insertions, 31 deletions
| diff --git a/lib/gitlab/ldap/adapter.rb b/lib/gitlab/ldap/adapter.rb index c4d0a20d89a..256cdb4c2f1 100644 --- a/lib/gitlab/ldap/adapter.rb +++ b/lib/gitlab/ldap/adapter.rb @@ -22,7 +22,7 @@ module Gitlab          Gitlab::LDAP::Config.new(provider)        end -      def users(field, value) +      def users(field, value, limit = nil)          if field.to_sym == :dn            options = {              base: value, @@ -45,6 +45,10 @@ module Gitlab                               end          end +        if limit.present? +          options.merge!(size: limit) +        end +          entries = ldap_search(options).select do |entry|            entry.respond_to? config.uid          end diff --git a/lib/tasks/gitlab/check.rake b/lib/tasks/gitlab/check.rake index 9ec368254ac..707d236068e 100644 --- a/lib/tasks/gitlab/check.rake +++ b/lib/tasks/gitlab/check.rake @@ -664,7 +664,7 @@ namespace :gitlab do        warn_user_is_not_gitlab        start_checking "LDAP" -      if ldap_config.enabled +      if Gitlab::LDAP::Config.enabled?          print_users(args.limit)        else          puts 'LDAP is disabled in config/gitlab.yml' @@ -675,39 +675,19 @@ namespace :gitlab do      def print_users(limit)        puts "LDAP users with access to your GitLab server (only showing the first #{limit} results)" -      ldap.search(attributes: attributes, filter: filter, size: limit, return_result: false) do |entry| -        puts "DN: #{entry.dn}\t#{ldap_config.uid}: #{entry[ldap_config.uid]}" -      end -    end - -    def attributes -      [ldap_config.uid] -    end -    def filter -      uid_filter = Net::LDAP::Filter.present?(ldap_config.uid) -      if user_filter -        Net::LDAP::Filter.join(uid_filter, user_filter) -      else -        uid_filter -      end -    end +      servers = Gitlab.config.ldap.servers.keys -    def user_filter -      if ldap_config['user_filter'] && ldap_config.user_filter.present? -        Net::LDAP::Filter.construct(ldap_config.user_filter) -      else -        nil +      servers.each do |server| +        puts "Server: #{server}" +        Gitlab::LDAP::Adapter.open("ldap#{server}") do |adapter| +          users = adapter.users(adapter.config.uid, '*', 100) +          users.each do |user| +            puts "\tDN: #{user.dn}\t #{adapter.config.uid}: #{user.uid}" +          end +        end        end      end - -    def ldap -      @ldap ||= OmniAuth::LDAP::Adaptor.new(ldap_config).connection -    end - -    def ldap_config -      @ldap_config ||= Gitlab.config.ldap -    end    end    # Helper methods | 
