diff options
author | Douwe Maan <douwe@gitlab.com> | 2019-03-25 16:02:05 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2019-03-25 16:02:05 +0000 |
commit | 13cd7cd76ff70c4ee63a3d6aea3f76c80a29b354 (patch) | |
tree | 491fbb4babf237b2808daa691ef6754598fdc5ed /lib | |
parent | 80a65cb85f489485ee5445ecd4327f0abbc5bf0b (diff) | |
parent | 45da7dd306c76dc322ca6d2ceed92046219fd90f (diff) | |
download | gitlab-ce-13cd7cd76ff70c4ee63a3d6aea3f76c80a29b354.tar.gz |
Merge branch 'ce-1974-update-user-name-upon-ldap-sync' into 'master'
Backport 'Update user name upon LDAP sync' from EE
See merge request gitlab-org/gitlab-ce!26432
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/auth/o_auth/user.rb | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/gitlab/auth/o_auth/user.rb b/lib/gitlab/auth/o_auth/user.rb index f38c5d57c44..09d1d79fefc 100644 --- a/lib/gitlab/auth/o_auth/user.rb +++ b/lib/gitlab/auth/o_auth/user.rb @@ -146,7 +146,6 @@ module Gitlab Gitlab::Auth::LDAP::Person.find_by_uid(auth_hash.uid, adapter) || Gitlab::Auth::LDAP::Person.find_by_email(auth_hash.uid, adapter) || Gitlab::Auth::LDAP::Person.find_by_dn(auth_hash.uid, adapter) - rescue Gitlab::Auth::LDAP::LDAPConnectionError nil end @@ -200,22 +199,19 @@ module Gitlab # Give preference to LDAP for sensitive information when creating a linked account if creating_linked_ldap_user? username = ldap_person.username.presence + name = ldap_person.name.presence email = ldap_person.email.first.presence end username ||= auth_hash.username + name ||= auth_hash.name email ||= auth_hash.email valid_username = ::Namespace.clean_path(username) - - uniquify = Uniquify.new - valid_username = uniquify.string(valid_username) { |s| !NamespacePathValidator.valid_path?(s) } - - name = auth_hash.name - name = valid_username if name.strip.empty? + valid_username = Uniquify.new.string(valid_username) { |s| !NamespacePathValidator.valid_path?(s) } { - name: name, + name: name.strip.presence || valid_username, username: valid_username, email: email, password: auth_hash.password, @@ -248,8 +244,9 @@ module Gitlab metadata.provider = auth_hash.provider end - if creating_linked_ldap_user? && gl_user.email == ldap_person.email.first - metadata.set_attribute_synced(:email, true) + if creating_linked_ldap_user? + metadata.set_attribute_synced(:name, true) if gl_user.name == ldap_person.name + metadata.set_attribute_synced(:email, true) if gl_user.email == ldap_person.email.first metadata.provider = ldap_person.provider end end |