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
This commit is contained in:
Go MAEDA
2022-12-30 09:00:14 +00:00
parent b7078d78dd
commit eb399b83a5
2 changed files with 18 additions and 1 deletions

View File

@@ -279,7 +279,8 @@ module Redmine
size = size.to_i size = size.to_i
size = 200 unless size > 0 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? if (controller_name == 'previews' || action_name == 'preview') && @attachments.present?
attachments = (attachments.to_a + @attachments).compact attachments = (attachments.to_a + @attachments).compact
end end

View File

@@ -8457,6 +8457,22 @@ class IssuesControllerTest < Redmine::ControllerTest
end end
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 def test_index_should_retrieve_default_query
query = IssueQuery.find(4) query = IssueQuery.find(4)
IssueQuery.stubs(:default).returns query IssueQuery.stubs(:default).returns query