2022-04-04 11:22:00 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
module Gitlab
|
|
|
|
module Graphql
|
|
|
|
module Project
|
2022-06-21 17:19:12 +05:30
|
|
|
class DastProfileConnectionExtension < GraphQL::Schema::FieldExtension
|
2022-04-04 11:22:00 +05:30
|
|
|
def after_resolve(value:, object:, context:, **rest)
|
|
|
|
preload_authorizations(context[:project_dast_profiles])
|
|
|
|
context[:project_dast_profiles] = nil
|
|
|
|
value
|
|
|
|
end
|
|
|
|
|
|
|
|
def preload_authorizations(dast_profiles)
|
|
|
|
return unless dast_profiles
|
|
|
|
|
2023-06-20 00:43:36 +05:30
|
|
|
project_users = dast_profiles.group_by(&:project).transform_values do |project_profiles|
|
|
|
|
project_profiles
|
|
|
|
.filter_map { |profile| profile.dast_profile_schedule&.owner }
|
|
|
|
.uniq
|
|
|
|
end
|
|
|
|
Preloaders::UsersMaxAccessLevelByProjectPreloader.new(project_users: project_users).execute
|
2022-04-04 11:22:00 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|