diff options
Diffstat (limited to 'app/services/issue_links/destroy_service.rb')
-rw-r--r-- | app/services/issue_links/destroy_service.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/services/issue_links/destroy_service.rb b/app/services/issue_links/destroy_service.rb new file mode 100644 index 00000000000..25a45fc697b --- /dev/null +++ b/app/services/issue_links/destroy_service.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +module IssueLinks + class DestroyService < IssuableLinks::DestroyService + private + + def source + @source ||= link.source + end + + def target + @target ||= link.target + end + + def permission_to_remove_relation? + can?(current_user, :admin_issue_link, source) && can?(current_user, :admin_issue_link, target) + end + + def create_notes + SystemNoteService.unrelate_issue(source, target, current_user) + SystemNoteService.unrelate_issue(target, source, current_user) + end + + def track_event + track_incident_action(current_user, target, :incident_unrelate) + end + end +end |