Force format to html for the download_named_attachment route (#42394).

Patch by Jens Krämer (user:jkraemer).

git-svn-id: https://svn.redmine.org/redmine/trunk@23581 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Marius Balteanu
2025-03-28 07:48:48 +00:00
parent 9296ec516a
commit 62fee35f00
2 changed files with 11 additions and 1 deletions

View File

@@ -316,7 +316,7 @@ Rails.application.routes.draw do
# additional routes for having the file name at the end of url
get 'attachments/:id/:filename', :to => 'attachments#show', :id => /\d+/, :filename => /.*/, :as => 'named_attachment', :format => 'html'
get 'attachments/download/:id/:filename', :to => 'attachments#download', :id => /\d+/, :filename => /.*/, :as => 'download_named_attachment'
get 'attachments/download/:id/:filename', :to => 'attachments#download', :id => /\d+/, :filename => /.*/, :as => 'download_named_attachment', format: 'html'
get 'attachments/download/:id', :to => 'attachments#download', :id => /\d+/
get 'attachments/thumbnail/:id(/:size)', :to => 'attachments#thumbnail', :id => /\d+/, :size => /\d+/, :as => 'thumbnail'
resources :attachments, :only => [:show, :update, :destroy]

View File

@@ -267,6 +267,16 @@ class AttachmentsTest < Redmine::IntegrationTest
end
end
def test_unauthorized_named_download_link_should_redirect_to_login
with_settings login_required: '1' do
get "/attachments/download/1"
assert_redirected_to "/login?back_url=http%3A%2F%2Fwww.example.com%2Fattachments%2Fdownload%2F1"
get "/attachments/download/1/error281.txt"
assert_redirected_to "/login?back_url=http%3A%2F%2Fwww.example.com%2Fattachments%2Fdownload%2F1%2Ferror281.txt"
end
end
private
def ajax_upload(filename, content, attachment_id=1)