Preload custom user fields when viewing flag queue

This commit is contained in:
Robin Ward 2018-06-12 16:17:22 -04:00
parent fc973f9363
commit 5bd1c5cc95
2 changed files with 21 additions and 2 deletions

View File

@ -3,7 +3,8 @@ class FlaggedUserSerializer < BasicUserSerializer
:can_be_deleted, :can_be_deleted,
:post_count, :post_count,
:topic_count, :topic_count,
:ip_address :ip_address,
:custom_fields
def can_delete_all_posts def can_delete_all_posts
scope.can_delete_all_posts?(object) scope.can_delete_all_posts?(object)
@ -17,4 +18,19 @@ class FlaggedUserSerializer < BasicUserSerializer
object.ip_address.try(:to_s) object.ip_address.try(:to_s)
end end
def custom_fields
fields = User.whitelisted_user_custom_fields(scope)
if scope.can_edit?(object)
fields += DiscoursePluginRegistry.serialized_current_user_fields.to_a
end
result = {}
fields.each do |k|
result[k] = object.custom_fields[k] if object.custom_fields[k].present?
end
result
end
end end

View File

@ -129,10 +129,13 @@ module FlagQuery
# TODO: add serializer so we can skip this # TODO: add serializer so we can skip this
posts.map!(&:marshal_dump) posts.map!(&:marshal_dump)
users = User.includes(:user_stat).where(id: user_ids.to_a).to_a
User.preload_custom_fields(users, User.whitelisted_user_custom_fields(guardian))
[ [
posts, posts,
Topic.with_deleted.where(id: topic_ids.to_a).to_a, Topic.with_deleted.where(id: topic_ids.to_a).to_a,
User.includes(:user_stat).where(id: user_ids.to_a).to_a, users,
all_post_actions, all_post_actions,
total_rows total_rows
] ]