Fix users autocomplete in a subgroup

We should include users who have access from parent groups, not just direct
members of the current group.
This commit is contained in:
Sean McGivern 2017-11-13 11:24:01 +00:00
parent 95661d7b62
commit cf6ff60165
3 changed files with 21 additions and 1 deletions

View file

@ -45,7 +45,7 @@ class AutocompleteUsersFinder
def find_users
return users_from_project if project
return group.users if group
return group.users_with_parents if group
return User.all if current_user
User.none

View file

@ -0,0 +1,5 @@
---
title: Fix user autocomplete in subgroups
merge_request:
author:
type: fixed

View file

@ -42,6 +42,21 @@ describe AutocompleteUsersFinder do
it { is_expected.to match_array([user1]) }
end
context 'when passed a subgroup', :nested_groups do
let(:grandparent) { create(:group, :public) }
let(:parent) { create(:group, :public, parent: grandparent) }
let(:child) { create(:group, :public, parent: parent) }
let(:group) { parent }
let!(:grandparent_user) { create(:group_member, :developer, group: grandparent).user }
let!(:parent_user) { create(:group_member, :developer, group: parent).user }
let!(:child_user) { create(:group_member, :developer, group: child).user }
it 'includes users from parent groups as well' do
expect(subject).to match_array([grandparent_user, parent_user])
end
end
it { is_expected.to match_array([user1, external_user, omniauth_user, current_user]) }
context 'when filtered by search' do