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:
parent
f90fd0d236
commit
fcf1352c6b
@ -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?
|
||||
|
||||
@ -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'
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user