Class: Autocomplete::GroupUsersFinder

Inherits:
Object
  • Object
show all
Includes:
Gitlab::Utils::StrongMemoize
Defined in:
app/finders/autocomplete/group_users_finder.rb

Instance Method Summary collapse

Constructor Details

#initialize(group:) ⇒ GroupUsersFinder

Returns a new instance of GroupUsersFinder.



15
16
17
# File 'app/finders/autocomplete/group_users_finder.rb', line 15

def initialize(group:)
  @group = group
end

Instance Method Details

#executeObject



19
20
21
22
23
24
25
26
27
28
# File 'app/finders/autocomplete/group_users_finder.rb', line 19

def execute
  members = Member
    .with(group_hierarchy_cte.to_arel) # rubocop:disable CodeReuse/ActiveRecord
    .with(descendant_projects_cte.to_arel) # rubocop:disable CodeReuse/ActiveRecord
    .from_union(member_relations, remove_duplicates: false)

  User
    .id_in(members.select(:user_id))
    .allow_cross_joins_across_databases(url: "https://gitlab.com/gitlab-org/gitlab/-/issues/420387")
end