]> source.dussan.org Git - redmine.git/commitdiff
Adds 'Delete wiki pages attachments' permission.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 18 Oct 2008 10:07:49 +0000 (10:07 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 18 Oct 2008 10:07:49 +0000 (10:07 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@1938 e93f8b46-1217-0410-a6f0-8f06a7374b81

db/migrate/099_add_delete_wiki_pages_attachments_permission.rb [new file with mode: 0644]
lib/redmine.rb
test/fixtures/roles.yml
test/functional/wiki_controller_test.rb

diff --git a/db/migrate/099_add_delete_wiki_pages_attachments_permission.rb b/db/migrate/099_add_delete_wiki_pages_attachments_permission.rb
new file mode 100644 (file)
index 0000000..1ff888f
--- /dev/null
@@ -0,0 +1,13 @@
+class AddDeleteWikiPagesAttachmentsPermission < ActiveRecord::Migration
+  def self.up
+       Role.find(:all).each do |r|
+         r.add_permission!(:delete_wiki_pages_attachments) if r.has_permission?(:edit_wiki_pages)
+       end
+  end
+
+  def self.down
+       Role.find(:all).each do |r|
+         r.remove_permission!(:delete_wiki_pages_attachments)
+       end
+  end
+end
index 5529e0bf5ef230ec8972e5dad23af22c3c0f8dde..1503c1d410980b9ae399842201b7ee682569574e 100644 (file)
@@ -81,7 +81,8 @@ Redmine::AccessControl.map do |map|
     map.permission :delete_wiki_pages, {:wiki => :destroy}, :require => :member
     map.permission :view_wiki_pages, :wiki => [:index, :special]
     map.permission :view_wiki_edits, :wiki => [:history, :diff, :annotate]
-    map.permission :edit_wiki_pages, :wiki => [:edit, :preview, :add_attachment, :destroy_attachment]
+    map.permission :edit_wiki_pages, :wiki => [:edit, :preview, :add_attachment]
+    map.permission :delete_wiki_pages_attachments, :wiki => :destroy_attachment
     map.permission :protect_wiki_pages, {:wiki => :protect}, :require => :member
   end
     
index 74cba27068a055b5402dedd7301ace32c2700695..78e0f0329074536ee9eb8f0ef845f55951425950 100644 (file)
@@ -32,6 +32,7 @@ roles_001:
     - :view_wiki_pages\r
     - :view_wiki_edits\r
     - :edit_wiki_pages\r
+    - :delete_wiki_pages_attachments\r
     - :protect_wiki_pages\r
     - :delete_wiki_pages\r
     - :rename_wiki_pages\r
index b5325357c649e99ecd8e83b3929d51030216d664..053b86301d74770e594166b03020e54370a4d0b7 100644 (file)
@@ -251,4 +251,11 @@ class WikiControllerTest < Test::Unit::TestCase
     assert_response :success
     assert_template 'edit'    
   end
+  
+  def test_destroy_attachment
+    @request.session[:user_id] = 2
+    assert_difference 'Attachment.count', -1 do
+      post :destroy_attachment, :id => 1, :page => 'Page_with_an_inline_image', :attachment_id => 3
+    end
+  end
 end