Return nil when looking up config for unknown LDAP provider

This commit is contained in:
Douwe Maan 2017-05-30 16:40:31 -05:00
parent 8039b9c3c6
commit 04bb8fe994
3 changed files with 51 additions and 1 deletions

View File

@ -0,0 +1,4 @@
---
title: Return nil when looking up config for unknown LDAP provider
merge_request:
author:

View File

@ -22,7 +22,11 @@ module Gitlab
def self.config_for(name)
name = name.to_s
if ldap_provider?(name)
Gitlab::LDAP::Config.new(name).options
if Gitlab::LDAP::Config.valid_provider?(name)
Gitlab::LDAP::Config.new(name).options
else
nil
end
else
Gitlab.config.omniauth.providers.find { |provider| provider.name == name }
end

View File

@ -0,0 +1,42 @@
require 'spec_helper'
describe Gitlab::OAuth::Provider, lib: true do
describe '#config_for' do
context 'for an LDAP provider' do
context 'when the provider exists' do
it 'returns the config' do
expect(described_class.config_for('ldapmain')).to be_a(Hash)
end
end
context 'when the provider does not exist' do
it 'returns nil' do
expect(described_class.config_for('ldapfoo')).to be_nil
end
end
end
context 'for an OmniAuth provider' do
before do
provider = OpenStruct.new(
name: 'google',
app_id: 'asd123',
app_secret: 'asd123'
)
allow(Gitlab.config.omniauth).to receive(:providers).and_return([provider])
end
context 'when the provider exists' do
it 'returns the config' do
expect(described_class.config_for('google')).to be_a(OpenStruct)
end
end
context 'when the provider does not exist' do
it 'returns nil' do
expect(described_class.config_for('foo')).to be_nil
end
end
end
end
end