diff --git a/app/controllers/attachments_controller.rb b/app/controllers/attachments_controller.rb
index 9e6dd4c..55cef02 100644
--- a/app/controllers/attachments_controller.rb
+++ b/app/controllers/attachments_controller.rb
@@ -53,7 +53,7 @@ class AttachmentsController < ApplicationController
end
- verify :method => :post, :only => :destroy
+ verify :method => :delete, :only => :destroy
def destroy
# Make sure association callbacks are called
@attachment.container.attachments.delete(@attachment)
diff --git a/app/views/attachments/_links.html.erb b/app/views/attachments/_links.html.erb
index 4f4e2d1..c92599a 100644
--- a/app/views/attachments/_links.html.erb
+++ b/app/views/attachments/_links.html.erb
@@ -4,9 +4,9 @@
<%= h(" - #{attachment.description}") unless attachment.description.blank? %>
(<%= number_to_human_size attachment.filesize %>)
<% if options[:deletable] %>
- <%= link_to image_tag('delete.png'), {:controller => 'attachments', :action => 'destroy', :id => attachment},
+ <%= link_to image_tag('delete.png'), attachment_path(attachment),
:confirm => l(:text_are_you_sure),
- :method => :post,
+ :method => :delete,
:class => 'delete',
:title => l(:button_delete) %>
<% end %>
diff --git a/app/views/files/index.html.erb b/app/views/files/index.html.erb
index a1b8848..397ca5c 100644
--- a/app/views/files/index.html.erb
+++ b/app/views/files/index.html.erb
@@ -33,8 +33,8 @@
<%= file.downloads %> |
<%= file.digest %> |
- <%= link_to(image_tag('delete.png'), {:controller => 'attachments', :action => 'destroy', :id => file},
- :confirm => l(:text_are_you_sure), :method => :post) if delete_allowed %>
+ <%= link_to(image_tag('delete.png'), attachment_path(file),
+ :confirm => l(:text_are_you_sure), :method => :delete) if delete_allowed %>
|
<% end
diff --git a/config/routes.rb b/config/routes.rb
index dd21ef2..833f238 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -215,9 +215,9 @@ ActionController::Routing::Routes.draw do |map|
repositories.connect 'projects/:id/repository/:action', :conditions => {:method => :post}
end
-
- map.connect 'attachments/:id', :controller => 'attachments', :action => 'show', :id => /\d+/
- map.connect 'attachments/:id.:format', :controller => 'attachments', :action => 'show', :id => /\d+/
+
+ map.resources :attachments, :only => [:show, :destroy]
+ # additional routes for having the file name at the end of url
map.connect 'attachments/:id/:filename', :controller => 'attachments', :action => 'show', :id => /\d+/, :filename => /.*/
map.connect 'attachments/download/:id/:filename', :controller => 'attachments', :action => 'download', :id => /\d+/, :filename => /.*/
diff --git a/test/functional/attachments_controller_test.rb b/test/functional/attachments_controller_test.rb
index bc1a518..42076b5 100644
--- a/test/functional/attachments_controller_test.rb
+++ b/test/functional/attachments_controller_test.rb
@@ -224,7 +224,7 @@ class AttachmentsControllerTest < ActionController::TestCase
@request.session[:user_id] = 2
assert_difference 'issue.attachments.count', -1 do
- post :destroy, :id => 1
+ delete :destroy, :id => 1
end
# no referrer
assert_redirected_to '/projects/ecookbook'
@@ -239,7 +239,7 @@ class AttachmentsControllerTest < ActionController::TestCase
def test_destroy_wiki_page_attachment
@request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
- post :destroy, :id => 3
+ delete :destroy, :id => 3
assert_response 302
end
set_tmp_attachments_directory
@@ -248,7 +248,7 @@ class AttachmentsControllerTest < ActionController::TestCase
def test_destroy_project_attachment
@request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
- post :destroy, :id => 8
+ delete :destroy, :id => 8
assert_response 302
end
set_tmp_attachments_directory
@@ -257,15 +257,17 @@ class AttachmentsControllerTest < ActionController::TestCase
def test_destroy_version_attachment
@request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
- post :destroy, :id => 9
+ delete :destroy, :id => 9
assert_response 302
end
set_tmp_attachments_directory
end
def test_destroy_without_permission
- post :destroy, :id => 3
- assert_redirected_to '/login?back_url=http%3A%2F%2Ftest.host%2Fattachments%2Fdestroy%2F3'
+ assert_no_difference 'Attachment.count' do
+ delete :destroy, :id => 3
+ end
+ assert_response 302
assert Attachment.find_by_id(3)
set_tmp_attachments_directory
end