Skip to content
Snippets Groups Projects

Sync requirement and requirement issues state

All threads resolved!
Compare and Show latest version
5 files
+ 15
15
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -3,8 +3,8 @@
module Issues
class CloseService < Issues::BaseService
# Closes the supplied issue if the current user is able to do so.
def execute(issue, commit: nil, notifications: true, system_note: true)
return issue unless can?(current_user, :update_issue, issue) || issue.is_a?(ExternalIssue)
def execute(issue, commit: nil, notifications: true, system_note: true, skip_authorization: false)
return issue unless can_close?(issue, skip_authorization: skip_authorization)
close_issue(issue,
closed_via: commit,
@@ -24,7 +24,7 @@ def close_issue(issue, closed_via: nil, notifications: true, system_note: true)
return issue
end
if project.issues_enabled? && issue.close(current_user)
if perform_close(issue)
event_service.close_issue(issue, current_user)
create_note(issue, closed_via) if system_note
@@ -51,6 +51,15 @@ def close_issue(issue, closed_via: nil, notifications: true, system_note: true)
private
# Overridden on EE
def perform_close(issue)
issue.close(current_user)
end
def can_close?(issue, skip_authorization: false)
skip_authorization || can?(current_user, :update_issue, issue) || issue.is_a?(ExternalIssue)
end
def perform_incident_management_actions(issue)
resolve_alert(issue)
end
Loading