FIX: Stop secure media URLs being censored too liberally in emails (#8817)

For example /t/ URLs were being replaced if they contained secure-media-uploads so if you made a topic called "Secure Media Uploads Are Cool" the View Topic link in the user notifications would be stripped out.

Refactored code so this secure URL detection happens in one place.
This commit is contained in:
Martin Brennan
2020-01-30 16:19:14 +10:00
committed by GitHub
parent c84652eb8b
commit 1150cd4621
4 changed files with 12 additions and 7 deletions

View File

@ -288,15 +288,14 @@ module Email
def replace_secure_media_urls
@fragment.css('[href]').each do |a|
if a['href'][/#{Upload::SECURE_MEDIA_ROUTE}/]
if Upload.secure_media_url?(a['href'])
a.add_next_sibling "<p class='secure-media-notice'>#{I18n.t("emails.secure_media_placeholder")}</p>"
a.remove
end
end
@fragment.search('img').each do |img|
next unless img['src']
if img['src'][/#{Upload::SECURE_MEDIA_ROUTE}/]
@fragment.search('img[src]').each do |img|
if Upload.secure_media_url?(img['src'])
img.add_next_sibling "<p class='secure-media-notice'>#{I18n.t("emails.secure_media_placeholder")}</p>"
img.remove
end