Merge branch 'jej/exclude-group-saml-buttons' into 'master'
[CE] Exclude LDAP from OmniauthCallbackController base methods See merge request gitlab-org/gitlab-ce!18619
This commit is contained in:
commit
c099132173
3 changed files with 32 additions and 4 deletions
|
@ -8,8 +8,8 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
|
||||||
omniauth_flow(Gitlab::Auth::OAuth)
|
omniauth_flow(Gitlab::Auth::OAuth)
|
||||||
end
|
end
|
||||||
|
|
||||||
Gitlab.config.omniauth.providers.each do |provider|
|
AuthHelper.providers_for_base_controller.each do |provider|
|
||||||
alias_method provider['name'], :handle_omniauth
|
alias_method provider, :handle_omniauth
|
||||||
end
|
end
|
||||||
|
|
||||||
# Extend the standard implementation to also increment
|
# Extend the standard implementation to also increment
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
module AuthHelper
|
module AuthHelper
|
||||||
PROVIDERS_WITH_ICONS = %w(twitter github gitlab bitbucket google_oauth2 facebook azure_oauth2 authentiq).freeze
|
PROVIDERS_WITH_ICONS = %w(twitter github gitlab bitbucket google_oauth2 facebook azure_oauth2 authentiq).freeze
|
||||||
FORM_BASED_PROVIDERS = [/\Aldap/, 'crowd'].freeze
|
LDAP_PROVIDER = /\Aldap/
|
||||||
|
|
||||||
def ldap_enabled?
|
def ldap_enabled?
|
||||||
Gitlab::Auth::LDAP::Config.enabled?
|
Gitlab::Auth::LDAP::Config.enabled?
|
||||||
|
@ -23,7 +23,7 @@ module AuthHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def form_based_provider?(name)
|
def form_based_provider?(name)
|
||||||
FORM_BASED_PROVIDERS.any? { |pattern| pattern === name.to_s }
|
[LDAP_PROVIDER, 'crowd'].any? { |pattern| pattern === name.to_s }
|
||||||
end
|
end
|
||||||
|
|
||||||
def form_based_providers
|
def form_based_providers
|
||||||
|
@ -38,6 +38,10 @@ module AuthHelper
|
||||||
auth_providers.reject { |provider| form_based_provider?(provider) }
|
auth_providers.reject { |provider| form_based_provider?(provider) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def providers_for_base_controller
|
||||||
|
auth_providers.reject { |provider| LDAP_PROVIDER === provider }
|
||||||
|
end
|
||||||
|
|
||||||
def enabled_button_based_providers
|
def enabled_button_based_providers
|
||||||
disabled_providers = Gitlab::CurrentSettings.disabled_oauth_sign_in_sources || []
|
disabled_providers = Gitlab::CurrentSettings.disabled_oauth_sign_in_sources || []
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,30 @@ describe AuthHelper do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "providers_for_base_controller" do
|
||||||
|
it 'returns all enabled providers from devise' do
|
||||||
|
allow(helper).to receive(:auth_providers) { [:twitter, :github] }
|
||||||
|
expect(helper.providers_for_base_controller).to include(*[:twitter, :github])
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'excludes ldap providers' do
|
||||||
|
allow(helper).to receive(:auth_providers) { [:twitter, :ldapmain] }
|
||||||
|
expect(helper.providers_for_base_controller).not_to include(:ldapmain)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "form_based_providers" do
|
||||||
|
it 'includes LDAP providers' do
|
||||||
|
allow(helper).to receive(:auth_providers) { [:twitter, :ldapmain] }
|
||||||
|
expect(helper.form_based_providers).to eq %i(ldapmain)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'includes crowd provider' do
|
||||||
|
allow(helper).to receive(:auth_providers) { [:twitter, :crowd] }
|
||||||
|
expect(helper.form_based_providers).to eq %i(crowd)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'enabled_button_based_providers' do
|
describe 'enabled_button_based_providers' do
|
||||||
before do
|
before do
|
||||||
allow(helper).to receive(:auth_providers) { [:twitter, :github] }
|
allow(helper).to receive(:auth_providers) { [:twitter, :github] }
|
||||||
|
|
Loading…
Reference in a new issue