summaryrefslogtreecommitdiff
path: root/lib/gitlab/o_auth
diff options
context:
space:
mode:
authorRobin Bobbitt <ryehle@us.ibm.com>2017-08-01 16:42:46 -0400
committerRobin Bobbitt <ryehle@us.ibm.com>2017-08-02 09:40:49 -0400
commit71951fc38c080579f9270d0c7a80bb3330483886 (patch)
treea81113c6742d74a193fc19d821288f0bc540f5a4 /lib/gitlab/o_auth
parent48c51e207e4cba8a69e4ca65cba1e169d384cefa (diff)
downloadgitlab-ce-71951fc38c080579f9270d0c7a80bb3330483886.tar.gz
Uniquify reserved word usernames on OAuth user creation
Diffstat (limited to 'lib/gitlab/o_auth')
-rw-r--r--lib/gitlab/o_auth/user.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/gitlab/o_auth/user.rb b/lib/gitlab/o_auth/user.rb
index 3f2bbd9f6a6..e8330917e91 100644
--- a/lib/gitlab/o_auth/user.rb
+++ b/lib/gitlab/o_auth/user.rb
@@ -166,12 +166,17 @@ module Gitlab
username ||= auth_hash.username
email ||= auth_hash.email
+ valid_username = ::Namespace.clean_path(username)
+
+ uniquify = Uniquify.new
+ valid_username = uniquify.string(valid_username) { |s| !DynamicPathValidator.valid_user_path?(s) }
+
name = auth_hash.name
- name = ::Namespace.clean_path(username) if name.strip.empty?
+ name = valid_username if name.strip.empty?
{
name: name,
- username: ::Namespace.clean_path(username),
+ username: valid_username,
email: email,
password: auth_hash.password,
password_confirmation: auth_hash.password,