Skip to content

Commit

Permalink
Use Hash syntax for LDAP server declaration
Browse files Browse the repository at this point in the history
  • Loading branch information
jewilmeer committed Oct 14, 2014
1 parent 9bf7bfd commit 6ce65a3
Show file tree
Hide file tree
Showing 7 changed files with 29 additions and 29 deletions.
2 changes: 1 addition & 1 deletion app/controllers/sessions_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def new
end

if Gitlab.config.ldap.enabled
@ldap_servers = Gitlab.config.ldap.servers
@ldap_servers = Gitlab::LDAP::Config.servers
end

super
Expand Down
6 changes: 3 additions & 3 deletions app/views/devise/sessions/new.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
%ul.nav.nav-tabs
- @ldap_servers.each_with_index do |server, i|
%li{class: (:active if i==0)}
= link_to server['label'], "#tab-#{server.provider_name}", 'data-toggle' => 'tab'
= link_to server['label'], "#tab-#{server['provider_name']}", 'data-toggle' => 'tab'
%li
= link_to 'Standard', '#tab-signin', 'data-toggle' => 'tab'
.tab-content
- @ldap_servers.each_with_index do |server,i|
%div.tab-pane{id: "tab-#{server.provider_name}", class: (:active if i==0)}
= render 'devise/sessions/new_ldap', provider: server.provider_name
%div.tab-pane{id: "tab-#{server['provider_name']}", class: (:active if i==0)}
= render 'devise/sessions/new_ldap', provider: server['provider_name']
%div#tab-signin.tab-pane
= render 'devise/sessions/new_base'

Expand Down
22 changes: 10 additions & 12 deletions config/gitlab.yml.example
Original file line number Diff line number Diff line change
Expand Up @@ -135,18 +135,16 @@ production: &base
ldap:
enabled: false
servers:
-
## provider_id
#
# This identifier is used by GitLab to keep track of which LDAP server each
# GitLab user belongs to. Each LDAP server known to GitLab should have a unique
# provider_id. This identifier cannot be changed once users from the LDAP server
# have started logging in to GitLab.
#
# Format: one word, using a-z (lower case) and 0-9
# Example: 'paris' or 'uswest2'

provider_id: main
## provider id
#
# This identifier is used by GitLab to keep track of which LDAP server each
# GitLab user belongs to. Each LDAP server known to GitLab should have a unique
# provider id. This identifier cannot be changed once users from the LDAP server
# have started logging in to GitLab.
#
# Format: one word, using a-z (lower case) and 0-9
# Example: 'paris' or 'uswest2'
main:

## label
#
Expand Down
10 changes: 6 additions & 4 deletions config/initializers/1_settings.rb
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,16 @@ def verify_constant(modul, current, default)
if Settings.ldap['host'].present?
server = Settings.ldap.except('sync_time')
server['label'] = 'LDAP'
server['provider_id'] = ''
Settings.ldap['servers'] = [server]
server['provider_name'] = 'ldap'
Settings.ldap['servers'] = {
'ldap' => server
}
end

Settings.ldap['servers'].each do |server|
Settings.ldap['servers'].each do |key, server|
server['allow_username_or_email_login'] = false if server['allow_username_or_email_login'].nil?
server['active_directory'] = true if server['active_directory'].nil?
server['provider_name'] = "ldap#{server['provider_id']}".downcase
server['provider_name'] ||= "ldap#{key}".downcase
server['provider_class'] = OmniAuth::Utils.camelize(server['provider_name'])
end
end
Expand Down
8 changes: 4 additions & 4 deletions config/initializers/7_omniauth.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
module OmniAuth::Strategies
server = Gitlab.config.ldap.servers.first
const_set(server.provider_class, Class.new(LDAP))
server = Gitlab.config.ldap.servers.values.first
const_set(server['provider_class'], Class.new(LDAP))
end

OmniauthCallbacksController.class_eval do
server = Gitlab.config.ldap.servers.first
alias_method server.provider_name, :ldap
server = Gitlab.config.ldap.servers.values.first
alias_method server['provider_name'], :ldap
end
4 changes: 2 additions & 2 deletions config/initializers/devise.rb
Original file line number Diff line number Diff line change
Expand Up @@ -205,14 +205,14 @@
# end

if Gitlab.config.ldap.enabled
Gitlab.config.ldap.servers.each do |server|
Gitlab.config.ldap.servers.values.each do |server|
if server['allow_username_or_email_login']
email_stripping_proc = ->(name) {name.gsub(/@.*$/,'')}
else
email_stripping_proc = ->(name) {name}
end

config.omniauth server.provider_name,
config.omniauth server['provider_name'],
host: server['host'],
base: server['base'],
uid: server['uid'],
Expand Down
6 changes: 3 additions & 3 deletions lib/gitlab/ldap/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ def self.enabled?
end

def self.servers
Gitlab.config.ldap.servers
Gitlab.config.ldap.servers.values
end

def self.providers
servers.map &:provider_name
servers.map {|server| server['provider_name'] }
end

def initialize(provider)
Expand Down Expand Up @@ -75,7 +75,7 @@ def base_config
end

def config_for(provider)
base_config.servers.find { |server| server.provider_name == provider }
base_config.servers.values.find { |server| server['provider_name'] == provider }
end

def encryption
Expand Down

0 comments on commit 6ce65a3

Please sign in to comment.