diff --git a/changelogs/unreleased/48677-also-check-auto_sign_in_with_provider.yml b/changelogs/unreleased/48677-also-check-auto_sign_in_with_provider.yml new file mode 100644 index 0000000000000000000000000000000000000000..3021fe6b9c85cf18e3d2ce12edbb3a2d6d4e339a --- /dev/null +++ b/changelogs/unreleased/48677-also-check-auto_sign_in_with_provider.yml @@ -0,0 +1,5 @@ +--- +title: Load Devise with Omniauth when auto_sign_in_with_provider is configured +merge_request: 20302 +author: +type: fixed diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index d051b699102abfa308458cd502fdecd443aa6d54..e5772c3330797f4cb7478b573bdf46dfee871044 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -219,7 +219,7 @@ Devise.setup do |config| end end - if Gitlab.config.omniauth.enabled + if Gitlab::OmniauthInitializer.enabled? Gitlab::OmniauthInitializer.new(config).execute(Gitlab.config.omniauth.providers) end end diff --git a/config/initializers/omniauth.rb b/config/initializers/omniauth.rb index a7fa926a853ade1e1bc91065d5daa2c2f4ef3433..c558eb28ced45a95a7f6c7f56aac4fdf8ffcadf5 100644 --- a/config/initializers/omniauth.rb +++ b/config/initializers/omniauth.rb @@ -17,7 +17,7 @@ OmniAuth.config.before_request_phase do |env| Gitlab::RequestForgeryProtection.call(env) end -if Gitlab.config.omniauth.enabled +if Gitlab::OmniauthInitializer.enabled? provider_names = Gitlab.config.omniauth.providers.map(&:name) Gitlab::Auth.omniauth_setup_providers(provider_names) end diff --git a/lib/gitlab/omniauth_initializer.rb b/lib/gitlab/omniauth_initializer.rb index 35ed3a5ac058803d398920691211b82d6e3e19b6..a71acda87016d61345d63c3c1e188eadcbe1c308 100644 --- a/lib/gitlab/omniauth_initializer.rb +++ b/lib/gitlab/omniauth_initializer.rb @@ -1,5 +1,10 @@ module Gitlab class OmniauthInitializer + def self.enabled? + Gitlab.config.omniauth.enabled || + Gitlab.config.omniauth.auto_sign_in_with_provider.present? + end + def initialize(devise_config) @devise_config = devise_config end