summaryrefslogtreecommitdiff
path: root/app/finders
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-05-11 00:13:54 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2023-05-11 00:13:54 +0000
commit2d9c62ffb595d2bf555046d09098a0d4af71e17f (patch)
treec837cf91cf3e50f443d1dcb852b82448637a5c8b /app/finders
parentd9710d79c52bc73438022e79c79cfe3ab35b084b (diff)
downloadgitlab-ce-2d9c62ffb595d2bf555046d09098a0d4af71e17f.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/finders')
-rw-r--r--app/finders/members_finder.rb15
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