Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/issues/move_service.rb')
-rw-r--r--app/services/issues/move_service.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/app/services/issues/move_service.rb b/app/services/issues/move_service.rb
index 4418b4eb2bf..e210e6a2362 100644
--- a/app/services/issues/move_service.rb
+++ b/app/services/issues/move_service.rb
@@ -2,6 +2,8 @@
module Issues
class MoveService < Issuable::Clone::BaseService
+ extend ::Gitlab::Utils::Override
+
MoveError = Class.new(StandardError)
def execute(issue, target_project)
@@ -47,6 +49,7 @@ module Issues
.sent_notifications.update_all(project_id: new_entity.project_id, noteable_id: new_entity.id)
end
+ override :update_old_entity
def update_old_entity
super
@@ -54,6 +57,13 @@ module Issues
mark_as_moved
end
+ override :update_new_entity
+ def update_new_entity
+ super
+
+ copy_contacts
+ end
+
def create_new_entity
new_params = {
id: nil,
@@ -99,6 +109,13 @@ module Issues
target_issue_links.update_all(target_id: new_entity.id)
end
+ def copy_contacts
+ return unless Feature.enabled?(:customer_relations, original_entity.project.root_ancestor)
+ return unless original_entity.project.root_ancestor == new_entity.project.root_ancestor
+
+ new_entity.customer_relations_contacts = original_entity.customer_relations_contacts
+ end
+
def notify_participants
notification_service.async.issue_moved(original_entity, new_entity, @current_user)
end