Fix LDAP config lookup for provider 'ldap'
This commit is contained in:
parent
1c1d9f78a4
commit
472a6621e9
|
|
@ -2,6 +2,7 @@ v 7.5.0
|
|||
- API: Add support for Hipchat (Kevin Houdebert)
|
||||
- Add time zone configuration on gitlab.yml (Sullivan Senechal)
|
||||
- Fix LDAP authentication for Git HTTP access
|
||||
- Fix LDAP config lookup for provider 'ldap'
|
||||
|
||||
v 7.4.0
|
||||
- Refactored membership logic
|
||||
|
|
|
|||
|
|
@ -16,10 +16,23 @@ module Gitlab
|
|||
servers.map {|server| server['provider_name'] }
|
||||
end
|
||||
|
||||
def self.valid_provider?(provider)
|
||||
providers.include?(provider)
|
||||
end
|
||||
|
||||
def self.invalid_provider(provider)
|
||||
raise "Unknown provider (#{provider}). Available providers: #{providers}"
|
||||
end
|
||||
|
||||
def initialize(provider)
|
||||
@provider = provider
|
||||
invalid_provider unless valid_provider?
|
||||
@options = config_for(provider)
|
||||
if self.class.valid_provider?(provider)
|
||||
@provider = provider
|
||||
elsif provider == 'ldap'
|
||||
@provider = self.class.providers.first
|
||||
else
|
||||
self.class.invalid_provider(provider)
|
||||
end
|
||||
@options = config_for(@provider) # Use @provider, not provider
|
||||
end
|
||||
|
||||
def enabled?
|
||||
|
|
@ -89,14 +102,6 @@ module Gitlab
|
|||
end
|
||||
end
|
||||
|
||||
def valid_provider?
|
||||
self.class.providers.include?(provider)
|
||||
end
|
||||
|
||||
def invalid_provider
|
||||
raise "Unknown provider (#{provider}). Available providers: #{self.class.providers}"
|
||||
end
|
||||
|
||||
def auth_options
|
||||
{
|
||||
auth: {
|
||||
|
|
|
|||
|
|
@ -16,5 +16,19 @@ describe Gitlab::LDAP::Config do
|
|||
it "raises an error if a unknow provider is used" do
|
||||
expect{ Gitlab::LDAP::Config.new 'unknown' }.to raise_error
|
||||
end
|
||||
|
||||
context "if 'ldap' is the provider name" do
|
||||
let(:provider) { 'ldap' }
|
||||
|
||||
context "and 'ldap' is not in defined as a provider" do
|
||||
before { Gitlab::LDAP::Config.stub(providers: %w{ldapmain}) }
|
||||
|
||||
it "uses the first provider" do
|
||||
# Fetch the provider_name attribute from 'options' so that we know
|
||||
# that the 'options' Hash is not empty/nil.
|
||||
expect(config.options['provider_name']).to eq('ldapmain')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue