1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-02-10 04:35:24 +00:00

Redirect to container URL in case of error in attachments#download_all (#37880).

Patch by Holger Just.


git-svn-id: https://svn.redmine.org/redmine/trunk@21948 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2022-11-03 05:17:48 +00:00
parent f90fd0d236
commit fcf1352c6b
2 changed files with 35 additions and 2 deletions

View File

@ -239,11 +239,28 @@ class AttachmentsController < ApplicationController
if @attachments.sum(&:filesize) > bulk_download_max_size
flash[:error] = l(:error_bulk_download_size_too_big,
:max_size => number_to_human_size(bulk_download_max_size.to_i))
redirect_to back_url
redirect_back_or_default(container_url, referer: true)
return
end
end
def container_url
case @container
when Message
url_for(@container.event_url)
when Project
# project attachments are listed in the files view
project_files_url(@container)
when Version
# version attachments are listed in its project's files view
project_files_url(@container.project)
when WikiPage
project_wiki_page_url @container.wiki.project, @container
else
url_for(@container)
end
end
# Checks that the file exists and is readable
def file_readable
if @attachment.readable?

View File

@ -631,7 +631,23 @@ class AttachmentsControllerTest < Redmine::ControllerTest
:params => {
:object_type => 'issues',
:object_id => '2',
:back_url => '/issues/2'
:back_url => '/issues/123'
}
)
assert_redirected_to '/issues/123'
assert_equal flash[:error], 'These attachments cannot be bulk downloaded because the total file size exceeds the maximum allowed size (0 Bytes)'
end
end
def test_download_all_redirects_to_container_url_on_error
with_settings :bulk_download_max_size => 0 do
@request.session[:user_id] = 2
get(
:download_all,
:params => {
:object_type => 'issues',
:object_id => '2',
:back_url => 'https://example.com'
}
)
assert_redirected_to '/issues/2'