summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2016-08-17 14:05:34 +0100
committerPhil Hughes <me@iamphill.com>2016-08-17 17:17:39 +0100
commit9a425c3f9232a552f18e19c8a36b4c23acc9ac80 (patch)
tree5915a0d07be373474a666dee8edae143060ed1e1
parent77a074a7201cf934fc255f9fcd59f9fd2d01ad57 (diff)
downloadgitlab-ce-9a425c3f9232a552f18e19c8a36b4c23acc9ac80.tar.gz
Fixed permissions around create new list button
-rw-r--r--app/views/shared/issuable/_filter.html.haml2
-rw-r--r--spec/features/boards/boards_spec.rb28
2 files changed, 28 insertions, 2 deletions
diff --git a/app/views/shared/issuable/_filter.html.haml b/app/views/shared/issuable/_filter.html.haml
index 949592a36eb..ffe8d4fbdbf 100644
--- a/app/views/shared/issuable/_filter.html.haml
+++ b/app/views/shared/issuable/_filter.html.haml
@@ -29,7 +29,7 @@
.pull-right
- if controller.controller_name != 'boards'
= render 'shared/sort_dropdown'
- - elsif current_user
+ - if can?(current_user, :admin_list, @project)
.dropdown
%button.btn.btn-create.js-new-board-list{ type: "button", data: { toggle: "dropdown", labels: labels_filter_path, project_id: @project.try(:id) } }
Create new list
diff --git a/spec/features/boards/boards_spec.rb b/spec/features/boards/boards_spec.rb
index cf20ca90b21..2864784559b 100644
--- a/spec/features/boards/boards_spec.rb
+++ b/spec/features/boards/boards_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
describe 'Issue Boards', feature: true, js: true do
include WaitForAjax
- let(:project) { create(:empty_project) }
+ let(:project) { create(:empty_project, :public) }
let(:user) { create(:user) }
let!(:user2) { create(:user) }
@@ -561,6 +561,32 @@ describe 'Issue Boards', feature: true, js: true do
end
end
+ context 'signed out user' do
+ before do
+ logout
+ visit namespace_project_board_path(project.namespace, project)
+ end
+
+ it 'does not show create new list' do
+ expect(page).not_to have_selector('.js-new-board-list')
+ end
+ end
+
+ context 'as guest user' do
+ let(:user_guest) { create(:user) }
+
+ before do
+ project.team << [user_guest, :guest]
+ logout
+ login_as(user_guest)
+ visit namespace_project_board_path(project.namespace, project)
+ end
+
+ it 'does not show create new list' do
+ expect(page).not_to have_selector('.js-new-board-list')
+ end
+ end
+
def drag_to(list_from_index: 0, card_index: 0, to_index: 0, list_to_index: 0, selector: '.board-list')
evaluate_script("simulateDrag({scrollable: document.getElementById('board-app'), from: {el: $('#{selector}').eq(#{list_from_index}).get(0), index: #{card_index}}, to: {el: $('.board-list').eq(#{list_to_index}).get(0), index: #{to_index}}});")