Skip to content

Commit c4e18f1

Browse files
committed
comment pings should have 'host' correctly set even if RequestContext is not populated
1 parent ee2e0a1 commit c4e18f1

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

app/helpers/comments_helper.rb

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def pinged_users(content)
4747
# @param content [String] content to convert ping-strings for
4848
# @param pingable [Array<Integer>, nil] A list of user IDs. Any user ID not present will be displayed as 'unpingable'.
4949
# @return [ActiveSupport::SafeBuffer]
50-
def render_pings(content, pingable: nil)
50+
def render_pings(content, pingable: nil, host: nil)
5151
users = pinged_users(content)
5252

5353
content.gsub(/@#(\d+)/) do |ping|
@@ -57,8 +57,10 @@ def render_pings(content, pingable: nil)
5757
else
5858
was_pung = pingable.present? && pingable.include?(user.id)
5959
classes = "ping #{'me' if user.same_as?(current_user)} #{'unpingable' unless was_pung}"
60-
user_link user, class: classes, dir: 'ltr',
61-
title: was_pung ? '' : I18n.t('comments.warnings.unrelated_user_not_pinged')
60+
user_link(user, { host: host },
61+
class: classes,
62+
dir: 'ltr',
63+
title: was_pung ? '' : I18n.t('comments.warnings.unrelated_user_not_pinged'))
6264
end
6365
end.html_safe
6466
end

app/views/comments/_comment.html.erb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@
7777
</div>
7878
</div>
7979
<div class="comment--body" dir="ltr">
80-
<%= render_pings(raw(sanitize(render_comment_helpers(render_markdown(comment.content)), scrubber: CommentScrubber.new)),
81-
pingable: pingable) %>
80+
<% rendered = render_comment_helpers(render_markdown(comment.content)) %>
81+
<% sanitized = sanitize(rendered, scrubber: CommentScrubber.new) %>
82+
<%= render_pings(raw(sanitized), pingable: pingable, host: comment.community.host) %>
8283
</div>
8384
</div>

0 commit comments

Comments
 (0)