From 82a5261acbd4af3c34d2b1c7cdffd245232d16c8 Mon Sep 17 00:00:00 2001 From: Marius BALTEANU Date: Sun, 10 Jun 2018 18:30:55 +0000 Subject: [PATCH] clear subtask assignee during copy if is locked --- app/models/issue.rb | 1 + test/unit/issue_test.rb | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/app/models/issue.rb b/app/models/issue.rb index 4ba068e..d37486c 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -1642,6 +1642,7 @@ class Issue < ActiveRecord::Base copy.project = project copy.parent_issue_id = copied_issue_ids[child.parent_id] copy.fixed_version_id = nil unless child.fixed_version.present? && child.fixed_version.status == 'open' + copy.assigned_to = nil unless child.assigned_to_id.present? && child.assigned_to.status == User::STATUS_ACTIVE unless copy.save logger.error "Could not copy subtask ##{child.id} while copying ##{@copied_from.id} to ##{id} due to validation errors: #{copy.errors.full_messages.join(', ')}" if logger next diff --git a/test/unit/issue_test.rb b/test/unit/issue_test.rb index d99402a..375a1f8 100644 --- a/test/unit/issue_test.rb +++ b/test/unit/issue_test.rb @@ -1413,6 +1413,25 @@ class IssueTest < ActiveSupport::TestCase assert_equal [3, nil], copy.children.map(&:fixed_version_id) end + def test_copy_should_clear_subtasks_assignee_if_is_locked + user = User.find(2) + + parent = Issue.generate! + child1 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 1', :assigned_to_id => 3) + child2 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 2', :assigned_to_id => user.id) + + user.status = User::STATUS_LOCKED + user.save! + + copy = parent.reload.copy + + assert_difference 'Issue.count', 3 do + assert copy.save + end + + assert_equal [3, nil], copy.children.map(&:assigned_to_id) + end + def test_should_not_call_after_project_change_on_creation issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1, :subject => 'Test', :author_id => 1) -- 2.1.4