diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2017-03-09 16:54:43 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2017-03-09 16:54:43 +0300 |
commit | ca66799267616810f4c1bae75ab0006201c094a4 (patch) | |
tree | 51a7452d1805842859efc35654ee67366d62b43b /lib | |
parent | 03476ac0bc2a06f19057475d8982055c12a6c0a9 (diff) | |
parent | 5b52adcedb78287c4599ead8ffc1d00f84dc4e55 (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.rb | 8 |
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 |