Read about our upcoming Code of Conduct on this issue

Commit e7f785af authored by Rémy Coutable's avatar Rémy Coutable
Browse files

Minimize CE/EE difference in Gitlab::Auth::LDAP::Config


Signed-off-by: default avatarRémy Coutable <remy@rymai.me>
parent b0b28618981c
......@@ -11,6 +11,8 @@ class Config
attr_accessor :provider, :options
InvalidProvider = Class.new(StandardError)
def self.enabled?
Gitlab.config.ldap.enabled
end
......@@ -22,6 +24,10 @@ def self.servers
def self.available_servers
return [] unless enabled?
_available_servers
end
def self._available_servers
Array.wrap(servers.first)
end
......@@ -34,7 +40,7 @@ def self.valid_provider?(provider)
end
def self.invalid_provider(provider)
raise "Unknown provider (#{provider}). Available providers: #{providers}"
raise InvalidProvider.new("Unknown provider (#{provider}). Available providers: #{providers}")
end
def initialize(provider)
......@@ -84,13 +90,17 @@ def omniauth_options
end
def base
options['base']
@base ||= Person.normalize_dn(options['base'])
end
def uid
options['uid']
end
def label
options['label']
end
def sync_ssh_keys?
sync_ssh_keys.present?
end
......@@ -132,6 +142,10 @@ def timeout
options['timeout'].to_i
end
def external_groups
options['external_groups'] || []
end
def has_auth?
options['password'] || options['bind_dn']
end
......
......@@ -23,7 +23,7 @@
end
it 'raises an error if a unknown provider is used' do
expect { described_class.new 'unknown' }.to raise_error(RuntimeError)
expect { described_class.new 'unknown' }.to raise_error(described_class::InvalidProvider)
end
end
......@@ -370,4 +370,38 @@
})
end
end
describe '#base' do
context 'when the configured base is not normalized' do
it 'returns the normalized base' do
stub_ldap_config(options: { 'base' => 'DC=example, DC= com' })
expect(config.base).to eq('dc=example,dc=com')
end
end
context 'when the configured base is normalized' do
it 'returns the base unaltered' do
stub_ldap_config(options: { 'base' => 'dc=example,dc=com' })
expect(config.base).to eq('dc=example,dc=com')
end
end
context 'when the configured base is malformed' do
it 'returns the base unaltered' do
stub_ldap_config(options: { 'base' => 'invalid,dc=example,dc=com' })
expect(config.base).to eq('invalid,dc=example,dc=com')
end
end
context 'when the configured base is blank' do
it 'returns the base unaltered' do
stub_ldap_config(options: { 'base' => '' })
expect(config.base).to eq('')
end
end
end
end
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