Hides merge request button on branches page
If user does not have the correct permissions, the merge request button is hidden Closes #21805
This commit is contained in:
parent
a5d1428a91
commit
315e6392cd
3 changed files with 35 additions and 19 deletions
|
@ -18,6 +18,7 @@ v 8.12.0 (unreleased)
|
||||||
- Shorten task status phrase (ClemMakesApps)
|
- Shorten task status phrase (ClemMakesApps)
|
||||||
- Add hover color to emoji icon (ClemMakesApps)
|
- Add hover color to emoji icon (ClemMakesApps)
|
||||||
- Fix branches page dropdown sort alignment (ClemMakesApps)
|
- Fix branches page dropdown sort alignment (ClemMakesApps)
|
||||||
|
- Hides merge request button on branches page is user doesn't have permissions
|
||||||
- Add white background for no readme container (ClemMakesApps)
|
- Add white background for no readme container (ClemMakesApps)
|
||||||
- API: Expose issue confidentiality flag. (Robert Schilling)
|
- API: Expose issue confidentiality flag. (Robert Schilling)
|
||||||
- Optimistic locking for Issues and Merge Requests (title and description overriding prevention)
|
- Optimistic locking for Issues and Merge Requests (title and description overriding prevention)
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
- diverging_commit_counts = @repository.diverging_commit_counts(branch)
|
- diverging_commit_counts = @repository.diverging_commit_counts(branch)
|
||||||
- number_commits_behind = diverging_commit_counts[:behind]
|
- number_commits_behind = diverging_commit_counts[:behind]
|
||||||
- number_commits_ahead = diverging_commit_counts[:ahead]
|
- number_commits_ahead = diverging_commit_counts[:ahead]
|
||||||
|
- merge_project = can?(current_user, :create_merge_request, @project) ? @project : (current_user && current_user.fork_of(@project))
|
||||||
%li(class="js-branch-#{branch.name}")
|
%li(class="js-branch-#{branch.name}")
|
||||||
%div
|
%div
|
||||||
= link_to namespace_project_tree_path(@project.namespace, @project, branch.name), class: 'item-title str-truncated' do
|
= link_to namespace_project_tree_path(@project.namespace, @project, branch.name), class: 'item-title str-truncated' do
|
||||||
|
@ -19,12 +20,12 @@
|
||||||
%i.fa.fa-lock
|
%i.fa.fa-lock
|
||||||
protected
|
protected
|
||||||
.controls.hidden-xs
|
.controls.hidden-xs
|
||||||
- if create_mr_button?(@repository.root_ref, branch.name)
|
- if merge_project && create_mr_button?(@repository.root_ref, branch.name)
|
||||||
= link_to create_mr_path(@repository.root_ref, branch.name), class: 'btn btn-default' do
|
= link_to create_mr_path(@repository.root_ref, branch.name), class: 'btn btn-default' do
|
||||||
Merge Request
|
Merge Request
|
||||||
|
|
||||||
- if branch.name != @repository.root_ref
|
- if branch.name != @repository.root_ref
|
||||||
= link_to namespace_project_compare_index_path(@project.namespace, @project, from: @repository.root_ref, to: branch.name), class: 'btn btn-default', method: :post, title: "Compare" do
|
= link_to namespace_project_compare_index_path(@project.namespace, @project, from: @repository.root_ref, to: branch.name), class: "btn btn-default #{'prepend-left-10' unless merge_project}", method: :post, title: "Compare" do
|
||||||
Compare
|
Compare
|
||||||
|
|
||||||
= render 'projects/buttons/download', project: @project, ref: branch.name
|
= render 'projects/buttons/download', project: @project, ref: branch.name
|
||||||
|
|
|
@ -1,32 +1,46 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe 'Branches', feature: true do
|
describe 'Branches', feature: true do
|
||||||
let(:project) { create(:project) }
|
let(:project) { create(:project, :public) }
|
||||||
let(:repository) { project.repository }
|
let(:repository) { project.repository }
|
||||||
|
|
||||||
before do
|
context 'logged in' do
|
||||||
login_as :user
|
before do
|
||||||
project.team << [@user, :developer]
|
login_as :user
|
||||||
end
|
project.team << [@user, :developer]
|
||||||
|
end
|
||||||
|
|
||||||
describe 'Initial branches page' do
|
describe 'Initial branches page' do
|
||||||
it 'shows all the branches' do
|
it 'shows all the branches' do
|
||||||
visit namespace_project_branches_path(project.namespace, project)
|
visit namespace_project_branches_path(project.namespace, project)
|
||||||
|
|
||||||
repository.branches { |branch| expect(page).to have_content("#{branch.name}") }
|
repository.branches { |branch| expect(page).to have_content("#{branch.name}") }
|
||||||
expect(page).to have_content("Protected branches can be managed in project settings")
|
expect(page).to have_content("Protected branches can be managed in project settings")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'Find branches' do
|
||||||
|
it 'shows filtered branches', js: true do
|
||||||
|
visit namespace_project_branches_path(project.namespace, project)
|
||||||
|
|
||||||
|
fill_in 'branch-search', with: 'fix'
|
||||||
|
find('#branch-search').native.send_keys(:enter)
|
||||||
|
|
||||||
|
expect(page).to have_content('fix')
|
||||||
|
expect(find('.all-branches')).to have_selector('li', count: 1)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'Find branches' do
|
context 'logged out' do
|
||||||
it 'shows filtered branches', js: true do
|
before do
|
||||||
visit namespace_project_branches_path(project.namespace, project)
|
visit namespace_project_branches_path(project.namespace, project)
|
||||||
|
end
|
||||||
|
|
||||||
fill_in 'branch-search', with: 'fix'
|
it 'does not show merge request button' do
|
||||||
find('#branch-search').native.send_keys(:enter)
|
page.within first('.all-branches li') do
|
||||||
|
expect(page).not_to have_content 'Merge Request'
|
||||||
expect(page).to have_content('fix')
|
end
|
||||||
expect(find('.all-branches')).to have_selector('li', count: 1)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue