Skip to content
deploy_keys_controller.rb 1.44 KiB
Newer Older
class Projects::DeployKeysController < Projects::ApplicationController
  include RepositorySettingsRedirect
  respond_to :html
  before_action :authorize_admin_project!
  layout "project_settings"

miks's avatar
miks committed
  def index
    respond_to do |format|
      format.html { redirect_to_repository_settings(@project) }
      format.json do
        render json: Projects::Settings::DeployKeysPresenter.new(@project, current_user: current_user).as_json
      end
    end
miks's avatar
miks committed
  end

  def new
    redirect_to_repository_settings(@project)
miks's avatar
miks committed
  end

  def create
    @key = DeployKey.new(deploy_key_params.merge(user: current_user))
    unless @key.valid? && @project.deploy_keys << @key
      flash[:alert] = @key.errors.full_messages.join(', ').html_safe
    redirect_to_repository_settings(@project)
    Projects::EnableDeployKeyService.new(@project, current_user, params).execute
    respond_to do |format|
      format.html { redirect_to_repository_settings(@project) }
      format.json { head :ok }
    end
    deploy_key_project = @project.deploy_keys_projects.find_by(deploy_key_id: params[:id])
    return render_404 unless deploy_key_project

    respond_to do |format|
      format.html { redirect_to_repository_settings(@project) }
      format.json { head :ok }
    end
  def deploy_key_params
    params.require(:deploy_key).permit(:key, :title, :can_push)
miks's avatar
miks committed
end