Commit 0d77209e authored by Robert Speicher's avatar Robert Speicher

Be more resilient in the case of missing omniauth settings

Should no longer freak out when omniauth settings aren't present in
gitlab.yml. People who aren't using it shouldn't even have to put a
'false' entry in their config for it (and probably wouldn't, after an
upgrade).
parent 3643df1f
......@@ -121,19 +121,19 @@ class Settings < Settingslogic
end
def ldap_enabled?
ldap['enabled']
rescue
ldap && ldap['enabled']
rescue Settingslogic::MissingSetting
false
end
def omniauth_enabled?
omniauth && omniauth['enabled']
rescue
rescue Settingslogic::MissingSetting
false
end
def omniauth_providers
omniauth['providers'] || []
(omniauth_enabled? && omniauth['providers']) || []
end
def disable_gravatar?
......
......@@ -17,7 +17,7 @@ module Gitlab
end
end
def create_from_omniauth auth, ldap = false
def create_from_omniauth(auth, ldap = false)
provider = auth.provider
uid = auth.info.uid || auth.uid
name = auth.info.name.force_encoding("utf-8")
......@@ -39,7 +39,7 @@ module Gitlab
password_confirmation: password,
projects_limit: Gitlab.config.default_projects_limit,
)
if Gitlab.config.omniauth.block_auto_created_users && !ldap
if Gitlab.config.omniauth['block_auto_created_users'] && !ldap
@user.blocked = true
end
@user.save!
......@@ -52,7 +52,7 @@ module Gitlab
if @user = User.find_by_provider_and_extern_uid(provider, uid)
@user
else
if Gitlab.config.omniauth.allow_single_sign_on
if Gitlab.config.omniauth['allow_single_sign_on']
@user = create_from_omniauth(auth)
@user
end
......
......@@ -4,6 +4,8 @@ describe Gitlab::Auth do
let(:gl_auth) { Gitlab::Auth.new }
before do
Gitlab.config.stub(omniauth: {})
@info = mock(
uid: '12djsak321',
name: 'John',
......@@ -64,7 +66,7 @@ describe Gitlab::Auth do
end
it "should create user if single_sing_on"do
Gitlab.config.omniauth.stub allow_single_sign_on: true
Gitlab.config.omniauth['allow_single_sign_on'] = true
User.stub find_by_provider_and_extern_uid: nil
gl_auth.should_receive :create_from_omniauth
gl_auth.find_or_new_for_omniauth(@auth)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment