24 lines
626 B
Ruby
24 lines
626 B
Ruby
# frozen_string_literal: true
|
|
|
|
# Abstract class encapsulating common logic for creating new controllers in a pipeline context
|
|
|
|
module Projects
|
|
module Pipelines
|
|
class ApplicationController < Projects::ApplicationController
|
|
include Gitlab::Utils::StrongMemoize
|
|
|
|
before_action :pipeline
|
|
before_action :authorize_read_pipeline!
|
|
|
|
private
|
|
|
|
def pipeline
|
|
strong_memoize(:pipeline) do
|
|
project.all_pipelines.find(params[:pipeline_id]).tap do |pipeline|
|
|
render_404 unless can?(current_user, :read_pipeline, pipeline)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|