diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-07-28 09:13:50 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-07-28 09:13:50 +0000 |
commit | da3100254f446bcb1f27516606f25d92893f81b8 (patch) | |
tree | 1c6346cfd7b0ad057b722b6f694bfd738b5b3fbc | |
parent | 190fae5f0cef11d68c7385be0c4013931796f958 (diff) | |
parent | ef97cb54ae3c62e8bc9062c7f32901520865d754 (diff) | |
download | gitlab-ce-da3100254f446bcb1f27516606f25d92893f81b8.tar.gz |
Merge branch 'backport-2844-ldap-ee-license-checks' into 'master'
Backport some recent changes related to LDAP from EE
See merge request !13119
-rw-r--r-- | app/controllers/sessions_controller.rb | 7 | ||||
-rw-r--r-- | config/initializers/omniauth.rb | 13 | ||||
-rw-r--r-- | lib/gitlab/ldap/config.rb | 6 |
3 files changed, 15 insertions, 11 deletions
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb index 69513f4dadc..9e743685d60 100644 --- a/app/controllers/sessions_controller.rb +++ b/app/controllers/sessions_controller.rb @@ -23,12 +23,7 @@ class SessionsController < Devise::SessionsController def new set_minimum_password_length - @ldap_servers = - if Gitlab.config.ldap.enabled - Gitlab::LDAP::Config.servers - else - [] - end + @ldap_servers = Gitlab::LDAP::Config.available_servers super end diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb index a36e59c941a..56c279ffcf4 100644 --- a/config/initializers/omniauth.rb +++ b/config/initializers/omniauth.rb @@ -1,13 +1,16 @@ if Gitlab::LDAP::Config.enabled? module OmniAuth::Strategies - server = Gitlab.config.ldap.servers.values.first - klass = server['provider_class'] - const_set(klass, Class.new(LDAP)) unless klass == 'LDAP' + Gitlab::LDAP::Config.available_servers.each do |server| + # do not redeclare LDAP + next if server['provider_name'] == 'ldap' + const_set(server['provider_class'], Class.new(LDAP)) + end end OmniauthCallbacksController.class_eval do - server = Gitlab.config.ldap.servers.values.first - alias_method server['provider_name'], :ldap + Gitlab::LDAP::Config.available_servers.each do |server| + alias_method server['provider_name'], :ldap + end end end diff --git a/lib/gitlab/ldap/config.rb b/lib/gitlab/ldap/config.rb index 8eda3ea03f9..c8f19cd52d5 100644 --- a/lib/gitlab/ldap/config.rb +++ b/lib/gitlab/ldap/config.rb @@ -18,6 +18,12 @@ module Gitlab Gitlab.config.ldap.servers.values end + def self.available_servers + return [] unless enabled? + + Array.wrap(servers.first) + end + def self.providers servers.map { |server| server['provider_name'] } end |