51 lines
1.4 KiB
Ruby
51 lines
1.4 KiB
Ruby
class Projects::ProtectedBranchesController < Projects::ApplicationController
|
|
# Authorize
|
|
before_action :require_non_empty_project
|
|
before_action :authorize_admin_project!
|
|
|
|
layout "project_settings"
|
|
|
|
def index
|
|
@branches = @project.protected_branches.to_a
|
|
@protected_branch = @project.protected_branches.new
|
|
end
|
|
|
|
def create
|
|
@project.protected_branches.create(protected_branch_params)
|
|
redirect_to namespace_project_protected_branches_path(@project.namespace,
|
|
@project)
|
|
end
|
|
|
|
def update
|
|
protected_branch = @project.protected_branches.find(params[:id])
|
|
|
|
if protected_branch &&
|
|
protected_branch.update_attributes(
|
|
developers_can_push: params[:developers_can_push]
|
|
)
|
|
|
|
respond_to do |format|
|
|
format.json { render json: protected_branch, status: :ok }
|
|
end
|
|
else
|
|
respond_to do |format|
|
|
format.json { render json: protected_branch.errors, status: :unprocessable_entity }
|
|
end
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
@project.protected_branches.find(params[:id]).destroy
|
|
|
|
respond_to do |format|
|
|
format.html { redirect_to namespace_project_protected_branches_path }
|
|
format.js { render nothing: true }
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def protected_branch_params
|
|
params.require(:protected_branch).permit(:name, :developers_can_push)
|
|
end
|
|
end
|