"Parent task is invalid" while editing child issues with restricted Issues Visibility (#12851).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@11228 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
d0888b2f71
commit
f99535bba2
|
@ -430,7 +430,7 @@ class Issue < ActiveRecord::Base
|
||||||
|
|
||||||
if attrs['parent_issue_id'].present?
|
if attrs['parent_issue_id'].present?
|
||||||
s = attrs['parent_issue_id'].to_s
|
s = attrs['parent_issue_id'].to_s
|
||||||
unless (m = s.match(%r{\A#?(\d+)\z})) && Issue.visible(user).exists?(m[1])
|
unless (m = s.match(%r{\A#?(\d+)\z})) && (m[1] == parent_id.to_s || Issue.visible(user).exists?(m[1]))
|
||||||
@invalid_parent_issue_id = attrs.delete('parent_issue_id')
|
@invalid_parent_issue_id = attrs.delete('parent_issue_id')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -2916,6 +2916,20 @@ class IssuesControllerTest < ActionController::TestCase
|
||||||
assert_equal spent_hours_before + 2.5, issue.spent_hours
|
assert_equal spent_hours_before + 2.5, issue.spent_hours
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_put_update_should_preserve_parent_issue_even_if_not_visible
|
||||||
|
parent = Issue.generate!(:project_id => 1, :is_private => true)
|
||||||
|
issue = Issue.generate!(:parent_issue_id => parent.id)
|
||||||
|
assert !parent.visible?(User.find(3))
|
||||||
|
@request.session[:user_id] = 3
|
||||||
|
|
||||||
|
get :edit, :id => issue.id
|
||||||
|
assert_select 'input[name=?][value=?]', 'issue[parent_issue_id]', parent.id.to_s
|
||||||
|
|
||||||
|
put :update, :id => issue.id, :issue => {:subject => 'New subject', :parent_issue_id => parent.id.to_s}
|
||||||
|
assert_response 302
|
||||||
|
assert_equal parent, issue.parent
|
||||||
|
end
|
||||||
|
|
||||||
def test_put_update_with_attachment_only
|
def test_put_update_with_attachment_only
|
||||||
set_tmp_attachments_directory
|
set_tmp_attachments_directory
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue