Merge pull request #1451 from tsigo/omniauth_settings

Be more resilient in the case of missing omniauth settings
This commit is contained in:
Dmitriy Zaporozhets 2012-09-12 22:22:59 -07:00
commit 85def2d625
3 changed files with 10 additions and 8 deletions

View file

@ -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?

View file

@ -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

View file

@ -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)