2022-10-11 01:57:18 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Preloaders
|
|
|
|
class ProjectPolicyPreloader
|
|
|
|
def initialize(projects, current_user)
|
|
|
|
@projects = projects
|
|
|
|
@current_user = current_user
|
|
|
|
end
|
|
|
|
|
|
|
|
def execute
|
|
|
|
return if projects.is_a?(ActiveRecord::NullRelation)
|
|
|
|
|
2023-05-27 22:25:52 +05:30
|
|
|
ActiveRecord::Associations::Preloader.new(
|
|
|
|
records: projects,
|
|
|
|
associations: { group: :route, namespace: :owner }
|
|
|
|
).call
|
2022-10-11 01:57:18 +05:30
|
|
|
::Preloaders::UserMaxAccessLevelInProjectsPreloader.new(projects, current_user).execute
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
attr_reader :projects, :current_user
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
Preloaders::ProjectPolicyPreloader.prepend_mod
|