Fix new group visibility form for non-admins

Removes an owner permission check before rendering the visibility
select radio inputs as non-admins will not have permission.

Ensures all users creating a group can select its visibility.
This commit is contained in:
Luke Bennett 2018-10-19 02:07:29 +01:00
parent 7f43b65fe5
commit 42dd6bf250
No known key found for this signature in database
GPG key ID: 402ED51FB5D306C2
3 changed files with 27 additions and 2 deletions

View file

@ -35,7 +35,7 @@
%p %p
= _('Who will be able to see this group?') = _('Who will be able to see this group?')
= link_to _('View the documentation'), help_page_path("public_access/public_access"), target: '_blank' = link_to _('View the documentation'), help_page_path("public_access/public_access"), target: '_blank'
= render 'shared/visibility_level', f: f, visibility_level: @group.visibility_level, can_change_visibility_level: can_change_group_visibility_level?(@group), form_model: @group, with_label: false = render 'shared/visibility_level', f: f, visibility_level: default_group_visibility, can_change_visibility_level: true, form_model: @group, with_label: false
= render 'create_chat_team', f: f if Gitlab.config.mattermost.enabled = render 'create_chat_team', f: f if Gitlab.config.mattermost.enabled

View file

@ -0,0 +1,5 @@
---
title: Fix bug stopping non-admin users from changing visibility level on group creation
merge_request: 22468
author:
type: fixed

View file

@ -1,8 +1,10 @@
require 'spec_helper' require 'spec_helper'
describe 'Group' do describe 'Group' do
let(:user) { create(:admin) }
before do before do
sign_in(create(:admin)) sign_in(user)
end end
matcher :have_namespace_error_message do matcher :have_namespace_error_message do
@ -16,6 +18,24 @@ describe 'Group' do
visit new_group_path visit new_group_path
end end
describe 'as a non-admin' do
let(:user) { create(:user) }
it 'creates a group and persists visibility radio selection', :js do
stub_application_setting(default_group_visibility: :private)
fill_in 'Group name', with: 'test-group'
find("input[name='group[visibility_level]'][value='#{Gitlab::VisibilityLevel::PUBLIC}']").click
click_button 'Create group'
group = Group.find_by(name: 'test-group')
expect(group.visibility_level).to eq(Gitlab::VisibilityLevel::PUBLIC)
expect(current_path).to eq(group_path(group))
expect(page).to have_selector '.visibility-icon .fa-globe'
end
end
describe 'with space in group path' do describe 'with space in group path' do
it 'renders new group form with validation errors' do it 'renders new group form with validation errors' do
fill_in 'Group URL', with: 'space group' fill_in 'Group URL', with: 'space group'