summaryrefslogtreecommitdiff
path: root/app/controllers/concerns/members_presentation.rb
blob: c6c3598a976d3111bad496cd10d4fd33c3889ed6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# frozen_string_literal: true

module MembersPresentation
  extend ActiveSupport::Concern

  def present_members(members)
    preload_associations(members)
    Gitlab::View::Presenter::Factory.new(
      members,
      current_user: current_user,
      presenter_class: MembersPresenter
    ).fabricate!
  end

  # rubocop: disable CodeReuse/ActiveRecord
  def preload_associations(members)
    ActiveRecord::Associations::Preloader.new.preload(members, :user)
    ActiveRecord::Associations::Preloader.new.preload(members, :source)
    ActiveRecord::Associations::Preloader.new.preload(members.map(&:user), :status)
    ActiveRecord::Associations::Preloader.new.preload(members.map(&:user), :u2f_registrations)
  end
  # rubocop: enable CodeReuse/ActiveRecord
end