repositories_controller.rb 713 Bytes
Newer Older
1
class Projects::RepositoriesController < Projects::ApplicationController
2
  # Authorize
3
  before_filter :require_non_empty_project, except: :create
4
  before_filter :authorize_download_code!
5 6 7 8 9 10 11
  before_filter :authorize_admin_project!, only: :create

  def create
    @project.create_repository

    redirect_to @project
  end
12

13 14
  def archive
    unless can?(current_user, :download_code, @project)
randx's avatar
randx committed
15
      render_404 and return
16 17
    end

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
18
    file_path = ArchiveRepositoryService.new.execute(@project, params[:ref], params[:format])
19 20 21

    if file_path
      # Send file to user
22
      response.headers["Content-Length"] = File.open(file_path).size.to_s
23 24 25 26
      send_file file_path
    else
      render_404
    end
27
  end
28
end