mirror of
https://github.com/meineerde/redmine.git
synced 2026-02-05 00:23:24 +00:00
Fixed attachments deletable by user without edit issue permission on tracker (#35634).
git-svn-id: http://svn.redmine.org/redmine/trunk@21142 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
1146831b3d
commit
f31a1e2bbb
@ -209,6 +209,11 @@ class Issue < ActiveRecord::Base
|
||||
user_tracker_permission?(user, :delete_issues)
|
||||
end
|
||||
|
||||
# Overrides Redmine::Acts::Attachable::InstanceMethods#attachments_deletable?
|
||||
def attachments_deletable?(user=User.current)
|
||||
attributes_editable?(user)
|
||||
end
|
||||
|
||||
def initialize(attributes=nil, *args)
|
||||
super
|
||||
if new_record?
|
||||
|
||||
@ -744,4 +744,25 @@ class AttachmentsControllerTest < Redmine::ControllerTest
|
||||
assert_response 302
|
||||
assert Attachment.find_by_id(3)
|
||||
end
|
||||
|
||||
def test_destroy_issue_attachment_by_user_without_edit_issue_permission_on_tracker
|
||||
role = Role.find(2)
|
||||
role.set_permission_trackers 'edit_issues', [2, 3]
|
||||
role.save!
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
set_tmp_attachments_directory
|
||||
assert_no_difference 'Attachment.count' do
|
||||
delete(
|
||||
:destroy,
|
||||
:params => {
|
||||
:id => 7
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
assert_response 403
|
||||
assert Attachment.find_by_id(7)
|
||||
end
|
||||
end
|
||||
|
||||
@ -3170,6 +3170,19 @@ class IssuesControllerTest < Redmine::ControllerTest
|
||||
assert_select 'div.attachments .icon-edit', 0
|
||||
end
|
||||
|
||||
def test_show_should_not_display_delete_attachment_icon_for_user_without_edit_issue_permission_on_tracker
|
||||
role = Role.find(2)
|
||||
role.set_permission_trackers 'edit_issues', [2, 3]
|
||||
role.save!
|
||||
|
||||
@request.session[:user_id] = 2
|
||||
|
||||
get :show, params: {id: 4}
|
||||
|
||||
assert_response :success
|
||||
assert_select 'div.attachments .icon-del', 0
|
||||
end
|
||||
|
||||
def test_get_new
|
||||
@request.session[:user_id] = 2
|
||||
get(
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user