diff --git a/lib/gitlab/o_auth/user.rb b/lib/gitlab/o_auth/user.rb index 675ded92a89..832fb08a526 100644 --- a/lib/gitlab/o_auth/user.rb +++ b/lib/gitlab/o_auth/user.rb @@ -106,7 +106,11 @@ module Gitlab def signup_enabled? providers = Gitlab.config.omniauth.allow_single_sign_on - providers.include?(auth_hash.provider) + if providers.is_a?(Array) + providers.include?(auth_hash.provider) + else + providers + end end def block_after_signup? diff --git a/spec/lib/gitlab/o_auth/user_spec.rb b/spec/lib/gitlab/o_auth/user_spec.rb index 76b1360f208..3a769acfdc0 100644 --- a/spec/lib/gitlab/o_auth/user_spec.rb +++ b/spec/lib/gitlab/o_auth/user_spec.rb @@ -41,7 +41,7 @@ describe Gitlab::OAuth::User, lib: true do describe 'signup' do shared_examples "to verify compliance with allow_single_sign_on" do - context "with allow_single_sign_on enabled" do + context "with new allow_single_sign_on enabled syntax" do before { stub_omniauth_config(allow_single_sign_on: ['twitter']) } it "creates a user from Omniauth" do @@ -54,12 +54,32 @@ describe Gitlab::OAuth::User, lib: true do end end - context "with allow_single_sign_on disabled (Default)" do + context "with old allow_single_sign_on enabled syntax" do + before { stub_omniauth_config(allow_single_sign_on: true) } + + it "creates a user from Omniauth" do + oauth_user.save + + expect(gl_user).to be_valid + identity = gl_user.identities.first + expect(identity.extern_uid).to eql uid + expect(identity.provider).to eql 'twitter' + end + end + + context "with new allow_single_sign_on disabled syntax" do before { stub_omniauth_config(allow_single_sign_on: []) } it "throws an error" do expect{ oauth_user.save }.to raise_error StandardError end end + + context "with old allow_single_sign_on disabled (Default)" do + before { stub_omniauth_config(allow_single_sign_on: false) } + it "throws an error" do + expect{ oauth_user.save }.to raise_error StandardError + end + end end context "with auto_link_ldap_user disabled (default)" do diff --git a/spec/lib/gitlab/saml/user_spec.rb b/spec/lib/gitlab/saml/user_spec.rb index 480ca1aee4b..de7cd99d49d 100644 --- a/spec/lib/gitlab/saml/user_spec.rb +++ b/spec/lib/gitlab/saml/user_spec.rb @@ -61,7 +61,7 @@ describe Gitlab::Saml::User, lib: true do end context 'with allow_single_sign_on disabled' do - before { stub_omniauth_config(allow_single_sign_on: []) } + before { stub_omniauth_config(allow_single_sign_on: false) } it 'should throw an error' do expect{ saml_user.save }.to raise_error StandardError end