Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Edwards-Jones <jedwardsjones@gitlab.com>2017-04-03 23:00:51 +0300
committerJames Edwards-Jones <jedwardsjones@gitlab.com>2017-04-03 23:14:33 +0300
commit3c91841d032f02b0b0d4c532998bbc923247e804 (patch)
tree874423ab53847ef1bcd290284bbfe179e8493a43 /app/controllers/projects/protected_branches_controller.rb
parent9f4b8dba805915bd21d315f159035449f9f4bef0 (diff)
Created ProtectedRefsController to reduce Tags/Branches duplication
Fixes ProtectedBranches#create flash errors bug due to typo in 'flash[:alert] = @protected_branches.errors'
Diffstat (limited to 'app/controllers/projects/protected_branches_controller.rb')
-rw-r--r--app/controllers/projects/protected_branches_controller.rb58
1 files changed, 18 insertions, 40 deletions
diff --git a/app/controllers/projects/protected_branches_controller.rb b/app/controllers/projects/protected_branches_controller.rb
index a8cb07eb67a..a245a60910e 100644
--- a/app/controllers/projects/protected_branches_controller.rb
+++ b/app/controllers/projects/protected_branches_controller.rb
@@ -1,58 +1,36 @@
-class Projects::ProtectedBranchesController < Projects::ApplicationController
- include RepositorySettingsRedirect
- # Authorize
- before_action :require_non_empty_project
- before_action :authorize_admin_project!
- before_action :load_protected_branch, only: [:show, :update, :destroy]
+class Projects::ProtectedBranchesController < Projects::ProtectedRefsController
- layout "project_settings"
+ protected
- def index
- redirect_to_repository_settings(@project)
+ def protected_ref
+ @protected_branch
end
- def create
- @protected_branch = ::ProtectedBranches::CreateService.new(@project, current_user, protected_branch_params).execute
- unless @protected_branch.persisted?
- flash[:alert] = @protected_branches.errors.full_messages.join(', ').html_safe
- end
- redirect_to_repository_settings(@project)
+ def protected_ref=(val)
+ @protected_branch = val
end
- def show
- @matching_branches = @protected_branch.matching(@project.repository.branches)
+ def matching_refs=(val)
+ @matching_branches = val
end
- def update
- @protected_branch = ::ProtectedBranches::UpdateService.new(@project, current_user, protected_branch_params).execute(@protected_branch)
-
- if @protected_branch.valid?
- 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
+ def project_refs
+ @project.repository.branches
end
- def destroy
- @protected_branch.destroy
-
- respond_to do |format|
- format.html { redirect_to_repository_settings(@project) }
- format.js { head :ok }
- end
+ def create_service
+ ::ProtectedBranches::CreateService
end
- private
+ def update_service
+ ::ProtectedBranches::UpdateService
+ end
- def load_protected_branch
- @protected_branch = @project.protected_branches.find(params[:id])
+ def load_protected_ref
+ self.protected_ref = @project.protected_branches.find(params[:id])
end
- def protected_branch_params
+ def protected_ref_params
params.require(:protected_branch).permit(:name,
merge_access_levels_attributes: [:access_level, :id],
push_access_levels_attributes: [:access_level, :id])