diff options
author | Imre Farkas <ifarkas@gitlab.com> | 2019-01-27 22:12:00 +0100 |
---|---|---|
committer | Imre Farkas <ifarkas@gitlab.com> | 2019-01-27 22:26:32 +0100 |
commit | b57cf4ae3ff3f39c69f6076f4bd10dafb4a238ea (patch) | |
tree | ac5b4b42a8cae0acbc7e20e16d70dfcd55bca5e7 | |
parent | c2b3f64cb44114e69ddeeb453412ad4dd762baf9 (diff) | |
download | gitlab-ce-b57cf4ae3ff3f39c69f6076f4bd10dafb4a238ea.tar.gz |
Backport of ee/9235: Add LDAP integration to smartcard authentication
-rw-r--r-- | app/views/devise/sessions/_new_ldap.html.haml | 2 | ||||
-rw-r--r-- | lib/gitlab/auth/ldap/adapter.rb | 19 |
2 files changed, 13 insertions, 8 deletions
diff --git a/app/views/devise/sessions/_new_ldap.html.haml b/app/views/devise/sessions/_new_ldap.html.haml index 796c0cadda8..f856773526d 100644 --- a/app/views/devise/sessions/_new_ldap.html.haml +++ b/app/views/devise/sessions/_new_ldap.html.haml @@ -1,3 +1,5 @@ +- server = local_assigns.fetch(:server) + = form_tag(omniauth_callback_path(:user, server['provider_name']), id: 'new_ldap_user', class: "gl-show-field-errors") do .form-group = label_tag :username, "#{server['label']} Username" diff --git a/lib/gitlab/auth/ldap/adapter.rb b/lib/gitlab/auth/ldap/adapter.rb index 42c657afe6a..15b9d5ad6e9 100644 --- a/lib/gitlab/auth/ldap/adapter.rb +++ b/lib/gitlab/auth/ldap/adapter.rb @@ -30,14 +30,7 @@ module Gitlab def users(fields, value, limit = nil) options = user_options(Array(fields), value, limit) - - entries = ldap_search(options).select do |entry| - entry.respond_to? config.uid - end - - entries.map do |entry| - Gitlab::Auth::LDAP::Person.new(entry, provider) - end + users_search(options) end def user(*args) @@ -90,6 +83,16 @@ module Gitlab SEARCH_RETRY_FACTOR[retry_number] * config.timeout end + def users_search(options) + entries = ldap_search(options).select do |entry| + entry.respond_to? config.uid + end + + entries.map do |entry| + Gitlab::Auth::LDAP::Person.new(entry, provider) + end + end + def user_options(fields, value, limit) options = { attributes: Gitlab::Auth::LDAP::Person.ldap_attributes(config), |