diff options
| author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-11 00:13:54 +0000 |
|---|---|---|
| committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-05-11 00:13:54 +0000 |
| commit | 2d9c62ffb595d2bf555046d09098a0d4af71e17f (patch) | |
| tree | c837cf91cf3e50f443d1dcb852b82448637a5c8b /app/finders | |
| parent | d9710d79c52bc73438022e79c79cfe3ab35b084b (diff) | |
| download | gitlab-ce-2d9c62ffb595d2bf555046d09098a0d4af71e17f.tar.gz | |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/finders')
| -rw-r--r-- | app/finders/members_finder.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/app/finders/members_finder.rb b/app/finders/members_finder.rb index d2122eccab1..3c0714441b2 100644 --- a/app/finders/members_finder.rb +++ b/app/finders/members_finder.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class MembersFinder - RELATIONS = %i[direct inherited descendants invited_groups].freeze + RELATIONS = %i[direct inherited descendants invited_groups shared_into_ancestors].freeze DEFAULT_RELATIONS = %i[direct inherited].freeze # Params can be any of the following: @@ -58,15 +58,20 @@ class MembersFinder def group_union_members(include_relations) [].tap do |members| - members << direct_group_members(include_relations.include?(:descendants)) if group + members << direct_group_members(include_relations) if group members << project_invited_groups if include_relations.include?(:invited_groups) end end - def direct_group_members(include_descendants) + def direct_group_members(include_relations) requested_relations = [:inherited, :direct] - requested_relations << :descendants if include_descendants - GroupMembersFinder.new(group).execute(include_relations: requested_relations).non_invite.non_minimal_access # rubocop: disable CodeReuse/Finder + requested_relations << :descendants if include_relations.include?(:descendants) + requested_relations << :shared_from_groups if include_relations.include?(:shared_into_ancestors) + + GroupMembersFinder.new(group, current_user) # rubocop: disable CodeReuse/Finder + .execute(include_relations: requested_relations) + .non_invite + .non_minimal_access end def project_invited_groups |
