summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorey Hinshaw <hinshaw.25@osu.edu>2015-05-14 11:46:48 -0400
committerCorey Hinshaw <hinshaw.25@osu.edu>2015-12-10 18:49:48 -0500
commitd8b3c3274c63d5fa62c441bac6e78a16e94422c3 (patch)
tree524e690b7164fc314a6953babbdd1b868a9a3cfc
parent667065700bc2ef4c687043d9e6ef5eb500df09a3 (diff)
downloadgitlab-ce-d8b3c3274c63d5fa62c441bac6e78a16e94422c3.tar.gz
AuthHash should not parameterize email user
-rw-r--r--lib/gitlab/o_auth/auth_hash.rb2
-rw-r--r--spec/lib/gitlab/o_auth/auth_hash_spec.rb4
2 files changed, 3 insertions, 3 deletions
diff --git a/lib/gitlab/o_auth/auth_hash.rb b/lib/gitlab/o_auth/auth_hash.rb
index d94b104bbf8..ba31599432b 100644
--- a/lib/gitlab/o_auth/auth_hash.rb
+++ b/lib/gitlab/o_auth/auth_hash.rb
@@ -62,7 +62,7 @@ module Gitlab
# Get the first part of the email address (before @)
# In addtion in removes illegal characters
def generate_username(email)
- email.match(/^[^@]*/)[0].parameterize
+ email.match(/^[^@]*/)[0].mb_chars.normalize(:kd).gsub(/[^\x00-\x7F]/,'').to_s
end
def generate_temporarily_email(username)
diff --git a/spec/lib/gitlab/o_auth/auth_hash_spec.rb b/spec/lib/gitlab/o_auth/auth_hash_spec.rb
index a4f8b44e38e..8aaeb5779d3 100644
--- a/spec/lib/gitlab/o_auth/auth_hash_spec.rb
+++ b/spec/lib/gitlab/o_auth/auth_hash_spec.rb
@@ -14,7 +14,7 @@ describe Gitlab::OAuth::AuthHash, lib: true do
let(:uid_raw) do
"CN=Onur K\xC3\xBC\xC3\xA7\xC3\xBCk,OU=Test,DC=example,DC=net"
end
- let(:email_raw) { "onur.k\xC3\xBC\xC3\xA7\xC3\xBCk@example.net" }
+ let(:email_raw) { "onur.k\xC3\xBC\xC3\xA7\xC3\xBCk_ABC-123@example.net" }
let(:nickname_raw) { "ok\xC3\xBC\xC3\xA7\xC3\xBCk" }
let(:first_name_raw) { 'Onur' }
let(:last_name_raw) { "K\xC3\xBC\xC3\xA7\xC3\xBCk" }
@@ -66,7 +66,7 @@ describe Gitlab::OAuth::AuthHash, lib: true do
before { info_hash.delete(:nickname) }
it 'takes the first part of the email as username' do
- expect(auth_hash.username).to eql 'onur-kucuk'
+ expect(auth_hash.username).to eql 'onur.kucuk_ABC-123'
end
end