diff --git a/Gemfile b/Gemfile index de4217b..8723eda 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,8 @@ gem "gitlab_git", '~> 6.0' gem 'gitlab-grack', '~> 2.0.0.pre', require: 'grack' # LDAP Auth -gem 'gitlab_omniauth-ldap', '1.0.4', require: "omniauth-ldap" +# Patched for attributes mapping customization +gem 'gitlab_omniauth-ldap', '1.0.4', require: 'omniauth-ldap', git: 'https://github.com/jirutka/omniauth-ldap.git', ref: 'b55852bfc9b46ecf790a2c5526386702350eab89' # Git Wiki gem 'gollum-lib', '~> 3.0.0' diff --git a/Gemfile.lock b/Gemfile.lock index 68c8f41..225089f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -5,6 +5,17 @@ GIT specs: charlock_holmes (0.6.9.4) +GIT + remote: https://github.com/jirutka/omniauth-ldap.git + revision: b55852bfc9b46ecf790a2c5526386702350eab89 + ref: b55852bfc9b46ecf790a2c5526386702350eab89 + specs: + gitlab_omniauth-ldap (1.0.4) + net-ldap (~> 0.3.1) + omniauth (~> 1.0) + pyu-ruby-sasl (~> 0.0.3.1) + rubyntlm (~> 0.1.1) + GEM remote: https://rubygems.org/ specs: @@ -188,11 +199,6 @@ GEM gitlab-linguist (~> 3.0) rugged (~> 0.19.0) gitlab_meta (7.0) - gitlab_omniauth-ldap (1.0.4) - net-ldap (~> 0.3.1) - omniauth (~> 1.0) - pyu-ruby-sasl (~> 0.0.3.1) - rubyntlm (~> 0.1.1) gollum-lib (3.0.0) github-markup (~> 1.1.0) gitlab-grit (~> 2.6.5) @@ -609,7 +615,7 @@ DEPENDENCIES gitlab_emoji (~> 0.0.1.1) gitlab_git (~> 6.0) gitlab_meta (= 7.0) - gitlab_omniauth-ldap (= 1.0.4) + gitlab_omniauth-ldap (= 1.0.4)! gollum-lib (~> 3.0.0) gon (~> 5.0.0) grape (~> 0.6.1) diff --git a/config/gitlab.yml.example b/config/gitlab.yml.example index 806984e..b2b8f56 100644 --- a/config/gitlab.yml.example +++ b/config/gitlab.yml.example @@ -132,6 +132,10 @@ production: &base method: 'ssl' # "tls" or "ssl" or "plain" bind_dn: '_the_full_dn_of_the_user_you_will_bind_with' password: '_the_password_of_the_bind_user' + mapping: + username: 'uid' + name: 'cn' + email: 'mail' # If allow_username_or_email_login is enabled, GitLab will ignore everything # after the first '@' in the LDAP username submitted by the user on login. # diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 50669ec..881081b 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -223,6 +223,7 @@ Devise.setup do |config| method: Gitlab.config.ldap['method'], bind_dn: Gitlab.config.ldap['bind_dn'], password: Gitlab.config.ldap['password'], + mapping: Gitlab.config.ldap['mapping'], name_proc: email_stripping_proc end