diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-06-01 20:19:17 +0300 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-06-01 20:19:17 +0300 |
commit | 97d6085fb507d53f92699d5cfea06dd319125994 (patch) | |
tree | 37a7de6bafde1c71e40a83d8615f0d23da4d90c0 /app/services | |
parent | 950db1bd6472813bb539b69a309402c4eb115122 (diff) | |
parent | dcd002a15bd9a3efee7b75de17c0f6d303c2a009 (diff) |
Merge branch 'dm-gravatar-username' into 'master'
Add username parameter to gravatar URL
Closes #24472
See merge request !11741
Diffstat (limited to 'app/services')
-rw-r--r-- | app/services/gravatar_service.rb | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/app/services/gravatar_service.rb b/app/services/gravatar_service.rb index 433ecc2df32..e77e08aa380 100644 --- a/app/services/gravatar_service.rb +++ b/app/services/gravatar_service.rb @@ -1,15 +1,20 @@ class GravatarService include Gitlab::CurrentSettings - def execute(email, size = nil, scale = 2) - if current_application_settings.gravatar_enabled? && email.present? - size = 40 if size.nil? || size <= 0 + def execute(email, size = nil, scale = 2, username: nil) + return unless current_application_settings.gravatar_enabled? - sprintf gravatar_url, - hash: Digest::MD5.hexdigest(email.strip.downcase), - size: size * scale, - email: email.strip - end + identifier = email.presence || username.presence + return unless identifier + + hash = Digest::MD5.hexdigest(identifier.strip.downcase) + size = 40 unless size && size > 0 + + sprintf gravatar_url, + hash: hash, + size: size * scale, + email: ERB::Util.url_encode(email&.strip || ''), + username: ERB::Util.url_encode(username&.strip || '') end def gitlab_config |