summaryrefslogtreecommitdiff
path: root/app/services/issue_links/destroy_service.rb
blob: 25a45fc697be702f8c33d0625de4c6fee7c2c117 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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