diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-09-25 11:04:14 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-09-25 11:04:14 +0000 |
commit | 2b364bd4d87ec9646ed949a8fe37a8720e6bdbd3 (patch) | |
tree | 5c99a8e0f134a8d4a5ae24a05a68d01693d3bd51 /app | |
parent | 972734a9ce00925b88440b28a83cfd7c8e9b84f6 (diff) | |
parent | d94df6ef83088b15f98a141355aae5a40c0fcbe2 (diff) | |
download | gitlab-ce-2b364bd4d87ec9646ed949a8fe37a8720e6bdbd3.tar.gz |
Merge branch '38189-fix-user-avatar-url-cdn' into 'master'
Prevent URL concatenation for avatars
Closes #38189
See merge request gitlab-org/gitlab-ce!14437
Diffstat (limited to 'app')
-rw-r--r-- | app/helpers/avatars_helper.rb | 25 | ||||
-rw-r--r-- | app/views/shared/issuable/_user_dropdown_item.html.haml | 2 |
2 files changed, 17 insertions, 10 deletions
diff --git a/app/helpers/avatars_helper.rb b/app/helpers/avatars_helper.rb index a4c226a6aad..be11d453898 100644 --- a/app/helpers/avatars_helper.rb +++ b/app/helpers/avatars_helper.rb @@ -13,22 +13,29 @@ module AvatarsHelper user_name = options[:user].try(:name) || options[:user_name] avatar_url = options[:url] || avatar_icon(options[:user] || options[:user_email], avatar_size) has_tooltip = options[:has_tooltip].nil? ? true : options[:has_tooltip] - data_attributes = {} + data_attributes = options[:data] || {} css_class = %W[avatar s#{avatar_size}].push(*options[:css_class]) if has_tooltip css_class.push('has-tooltip') - data_attributes = { container: 'body' } + data_attributes[:container] = 'body' end - image_tag( - avatar_url, + if options[:lazy] + css_class << 'lazy' + data_attributes[:src] = avatar_url + avatar_url = LazyImageTagHelper.placeholder_image + end + + image_options = { + alt: "#{user_name}'s avatar", + src: avatar_url, + data: data_attributes, class: css_class, - alt: "#{user_name}'s avatar", - title: user_name, - data: data_attributes, - lazy: true - ) + title: user_name + } + + tag(:img, image_options) end def user_avatar(options = {}) diff --git a/app/views/shared/issuable/_user_dropdown_item.html.haml b/app/views/shared/issuable/_user_dropdown_item.html.haml index 48d04678d47..4a3547e9e70 100644 --- a/app/views/shared/issuable/_user_dropdown_item.html.haml +++ b/app/views/shared/issuable/_user_dropdown_item.html.haml @@ -4,7 +4,7 @@ %li.filter-dropdown-item{ class: ('js-current-user' if user == current_user) } %button.btn.btn-link.dropdown-user{ type: :button } .avatar-container.s40 - = user_avatar_without_link(user: user, lazy: avatar[:lazy], url: avatar[:url], size: 40, has_tooltip: false).gsub('/images/{{avatar_url}}','{{avatar_url}}').html_safe + = user_avatar_without_link(user: user, lazy: avatar[:lazy], url: avatar[:url], size: 40, has_tooltip: false) .dropdown-user-details %span = user.name |