uploads_controller.rb 840 字节
Newer Older
1
class Projects::UploadsController < Projects::ApplicationController
2 3
  include UploadsActions

4 5
  skip_before_action :project, :repository,
    if: -> { action_name == 'show' && image_or_video? }
6

D
Douwe Maan 已提交
7
  before_action :authorize_upload_file!, only: [:create]
D
Douwe Maan 已提交
8 9 10

  private

D
Douwe Maan 已提交
11 12 13
  def uploader
    return @uploader if defined?(@uploader)

14 15
    namespace = params[:namespace_id]
    id = params[:project_id]
D
Douwe Maan 已提交
16

17
    file_project = Project.find_by_full_path("#{namespace}/#{id}")
18

D
Douwe Maan 已提交
19
    if file_project.nil?
20
      @uploader = nil
D
Douwe Maan 已提交
21 22
      return
    end
23

D
Douwe Maan 已提交
24 25
    @uploader = FileUploader.new(file_project, params[:secret])
    @uploader.retrieve_from_store!(params[:filename])
26

D
Douwe Maan 已提交
27
    @uploader
28
  end
29

30
  def image_or_video?
31
    uploader && uploader.exists? && uploader.image_or_video?
32
  end
33 34 35 36 37 38

  def uploader_class
    FileUploader
  end

  alias_method :model, :project
D
Douwe Maan 已提交
39
end