From eb399b83a500f77469011cc27da0b0cf15ec3937 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Fri, 30 Dec 2022 09:00:14 +0000 Subject: [PATCH] Fix `{{thumbnail}}` macro in an issue note cannot fetch an image attached in a different note (#37881). Patch by Mizuki ISHIKAWA. git-svn-id: https://svn.redmine.org/redmine/trunk@22012 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- lib/redmine/wiki_formatting/macros.rb | 3 ++- test/functional/issues_controller_test.rb | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lib/redmine/wiki_formatting/macros.rb b/lib/redmine/wiki_formatting/macros.rb index 42096b9a3..9fbed6a6e 100644 --- a/lib/redmine/wiki_formatting/macros.rb +++ b/lib/redmine/wiki_formatting/macros.rb @@ -279,7 +279,8 @@ module Redmine size = size.to_i size = 200 unless size > 0 - attachments = obj.attachments if obj.respond_to?(:attachments) + container = obj.is_a?(Journal) ? obj.journalized : obj + attachments = container.attachments if container.respond_to?(:attachments) if (controller_name == 'previews' || action_name == 'preview') && @attachments.present? attachments = (attachments.to_a + @attachments).compact end diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 58e51348a..9c387a341 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -8457,6 +8457,22 @@ class IssuesControllerTest < Redmine::ControllerTest end end + def test_show_with_thumbnail_macro_should_be_able_to_fetch_image_of_different_journal + @request.session[:user_id] = 1 + issue = Issue.find(2) + attachment = Attachment.generate!(filename: 'foo.png', digest: Redmine::Utils.random_hex(32)) + attachment.update(container: issue) + + issue.init_journal(User.first, "{{thumbnail(#{attachment.filename})}}") + issue.save! + issue.reload + + get :show, params: { id: issue.id } + assert_select "div#history div#journal-#{issue.journals.last.id}-notes" do + assert_select "a.thumbnail[title=?][href='/attachments/#{attachment.id}']", 'foo.png' + end + end + def test_index_should_retrieve_default_query query = IssueQuery.find(4) IssueQuery.stubs(:default).returns query -- 2.39.5