Skip to content
Snippets Groups Projects
Commit 0d77209e authored by Robert Speicher's avatar Robert Speicher
Browse files

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
No related branches found
No related tags found
1 merge request!1451Be more resilient in the case of missing omniauth settings
Loading
Loading
@@ -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?
Loading
Loading
Loading
Loading
@@ -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")
Loading
Loading
@@ -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!
Loading
Loading
@@ -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
Loading
Loading
Loading
Loading
@@ -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',
Loading
Loading
@@ -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)
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment