summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2017-11-13 15:15:11 +0000
committerOswaldo Ferreira <oswaldo@gitlab.com>2017-11-14 16:16:05 +0000
commitba6a53f8f3be2d31de0449de23a4bb69f228ed62 (patch)
treeac1d03f18d687696f41582f7ec7f2f315428cd26
parent19d6cdfe1b374fce6119a85a6e221d9e354dc0e3 (diff)
downloadgitlab-ce-ba6a53f8f3be2d31de0449de23a4bb69f228ed62.tar.gz
Merge branch 'fix-subgroup-autocomplete' into 'master'
Fix users autocomplete in a subgroup Closes #39452 See merge request gitlab-org/gitlab-ce!15350 (cherry picked from commit 4a1e8188f96744103e51263c9bdc071c8e088690) cf6ff601 Fix users autocomplete in a subgroup
-rw-r--r--app/finders/autocomplete_users_finder.rb2
-rw-r--r--changelogs/unreleased/fix-subgroup-autocomplete.yml5
-rw-r--r--spec/finders/autocomplete_users_finder_spec.rb15
3 files changed, 21 insertions, 1 deletions
diff --git a/app/finders/autocomplete_users_finder.rb b/app/finders/autocomplete_users_finder.rb
index b8f52e31926..c3f5358b577 100644
--- a/app/finders/autocomplete_users_finder.rb
+++ b/app/finders/autocomplete_users_finder.rb
@@ -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
diff --git a/changelogs/unreleased/fix-subgroup-autocomplete.yml b/changelogs/unreleased/fix-subgroup-autocomplete.yml
new file mode 100644
index 00000000000..4baa2b02f77
--- /dev/null
+++ b/changelogs/unreleased/fix-subgroup-autocomplete.yml
@@ -0,0 +1,5 @@
+---
+title: Fix user autocomplete in subgroups
+merge_request:
+author:
+type: fixed
diff --git a/spec/finders/autocomplete_users_finder_spec.rb b/spec/finders/autocomplete_users_finder_spec.rb
index 684af74d750..dcf9111776e 100644
--- a/spec/finders/autocomplete_users_finder_spec.rb
+++ b/spec/finders/autocomplete_users_finder_spec.rb
@@ -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