Improve variables in mr widget

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
Dmitriy Zaporozhets 2015-06-11 18:45:12 +02:00
parent 8893ac4ba4
commit 946b4ceda3
No known key found for this signature in database
GPG Key ID: 627C5F589F467F17
5 changed files with 8 additions and 15 deletions

View File

@ -139,14 +139,13 @@ class Projects::MergeRequestsController < Projects::ApplicationController
@merge_request.check_if_can_be_merged @merge_request.check_if_can_be_merged
end end
@allowed_to_merge = allowed_to_merge?
closes_issues closes_issues
render partial: "projects/merge_requests/widget/show.html.haml", layout: false render partial: "projects/merge_requests/widget/show.html.haml", layout: false
end end
def automerge def automerge
return access_denied! unless allowed_to_merge? return access_denied! unless @merge_request.can_be_merged_by?(current_user)
if @merge_request.automergeable? if @merge_request.automergeable?
AutoMergeWorker.perform_async(@merge_request.id, current_user.id, params) AutoMergeWorker.perform_async(@merge_request.id, current_user.id, params)
@ -255,8 +254,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController
@commits = @merge_request.commits @commits = @merge_request.commits
@merge_request_diff = @merge_request.merge_request_diff @merge_request_diff = @merge_request.merge_request_diff
@allowed_to_merge = allowed_to_merge?
@show_merge_controls = @merge_request.open? && @commits.any? && @allowed_to_merge
@source_branch = @merge_request.source_project.repository.find_branch(@merge_request.source_branch).try(:name) @source_branch = @merge_request.source_project.repository.find_branch(@merge_request.source_branch).try(:name)
if @merge_request.locked_long_ago? if @merge_request.locked_long_ago?
@ -265,19 +262,11 @@ class Projects::MergeRequestsController < Projects::ApplicationController
end end
end end
def allowed_to_merge?
allowed_to_push_code?(project, @merge_request.target_branch)
end
def invalid_mr def invalid_mr
# Render special view for MR with removed source or target branch # Render special view for MR with removed source or target branch
render 'invalid' render 'invalid'
end end
def allowed_to_push_code?(project, branch)
::Gitlab::GitAccess.new(current_user, project).can_push_to_branch?(branch)
end
def merge_request_params def merge_request_params
params.require(:merge_request).permit( params.require(:merge_request).permit(
:title, :assignee_id, :source_project_id, :source_branch, :title, :assignee_id, :source_project_id, :source_branch,

View File

@ -413,4 +413,8 @@ class MergeRequest < ActiveRecord::Base
def branch_missing? def branch_missing?
!source_branch_exists? || !target_branch_exists? !source_branch_exists? || !target_branch_exists?
end end
def can_be_merged_by?(user)
::Gitlab::GitAccess.new(user, project).can_push_to_branch?(target_branch)
end
end end

View File

@ -15,7 +15,7 @@
= render 'projects/merge_requests/widget/open/conflicts' = render 'projects/merge_requests/widget/open/conflicts'
- elsif @merge_request.work_in_progress? - elsif @merge_request.work_in_progress?
= render 'projects/merge_requests/widget/open/wip' = render 'projects/merge_requests/widget/open/wip'
- elsif !@allowed_to_merge - elsif !@merge_request.can_be_merged_by?(current_user)
= render 'projects/merge_requests/widget/open/not_allowed' = render 'projects/merge_requests/widget/open/not_allowed'
- elsif @merge_request.can_be_merged? - elsif @merge_request.can_be_merged?
= render 'projects/merge_requests/widget/open/accept' = render 'projects/merge_requests/widget/open/accept'

View File

@ -1,4 +1,4 @@
- if @allowed_to_merge - if @merge_request.can_be_merged_by?(current_user)
%h4 %h4
This merge request contains merge conflicts that must be resolved. This merge request contains merge conflicts that must be resolved.
You can try it manually on the You can try it manually on the

View File

@ -1,4 +1,4 @@
- if @allowed_to_merge - if @merge_request.can_be_merged_by?(current_user)
%h4 %h4
This merge request cannot be accepted because it is marked as Work In Progress. This merge request cannot be accepted because it is marked as Work In Progress.