Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2017-03-09 16:54:43 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2017-03-09 16:54:43 +0300
commitca66799267616810f4c1bae75ab0006201c094a4 (patch)
tree51a7452d1805842859efc35654ee67366d62b43b /lib
parent03476ac0bc2a06f19057475d8982055c12a6c0a9 (diff)
parent5b52adcedb78287c4599ead8ffc1d00f84dc4e55 (diff)
Merge branch 'dz-nested-groups-members' into 'master'
Show members of parent groups on project members page Closes #28786 and #27962 See merge request !9764
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/import_export/project_tree_saver.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/gitlab/import_export/project_tree_saver.rb b/lib/gitlab/import_export/project_tree_saver.rb
index b79be62245b..3473b466936 100644
--- a/lib/gitlab/import_export/project_tree_saver.rb
+++ b/lib/gitlab/import_export/project_tree_saver.rb
@@ -47,7 +47,13 @@ module Gitlab
def group_members
return [] unless @current_user.can?(:admin_group, @project.group)
- MembersFinder.new(@project.project_members, @project.group).execute(@current_user)
+ # We need `.where.not(user_id: nil)` here otherwise when a group has an
+ # invitee, it would make the following query return 0 rows since a NULL
+ # user_id would be present in the subquery
+ # See http://stackoverflow.com/questions/129077/not-in-clause-and-null-values
+ non_null_user_ids = @project.project_members.where.not(user_id: nil).select(:user_id)
+
+ GroupMembersFinder.new(@project.group).execute.where.not(user_id: non_null_user_ids)
end
end
end