debian-mirror-gitlab/app/controllers/projects/incidents_controller.rb
2022-06-21 17:19:12 +05:30

51 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class Projects::IncidentsController < Projects::ApplicationController
include IssuableActions
include Gitlab::Utils::StrongMemoize
before_action :authorize_read_issue!
before_action :load_incident, only: [:show]
before_action do
push_frontend_feature_flag(:incident_escalations, @project, default_enabled: :yaml)
push_frontend_feature_flag(:incident_timeline, @project, default_enabled: :yaml)
end
feature_category :incident_management
def index
end
private
def incident
strong_memoize(:incident) do
incident_finder
.execute
.inc_relations_for_view
.iid_in(params[:id])
.without_order
.first
end
end
def load_incident
@issue = incident # needed by rendered view
return render_404 unless can?(current_user, :read_issue, incident)
@noteable = incident
@note = incident.project.notes.new(noteable: issuable)
end
alias_method :issuable, :incident
def incident_finder
IssuesFinder.new(current_user, project_id: @project.id, issue_types: :incident)
end
def serializer
IssueSerializer.new(current_user: current_user, project: incident.project)
end
end
Projects::IncidentsController.prepend_mod