From 5bd1c5cc95f8f78ab74342dabbaa2f6366f57a62 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 12 Jun 2018 16:17:22 -0400 Subject: [PATCH] Preload custom user fields when viewing flag queue --- app/serializers/flagged_user_serializer.rb | 18 +++++++++++++++++- lib/flag_query.rb | 5 ++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/app/serializers/flagged_user_serializer.rb b/app/serializers/flagged_user_serializer.rb index c9ec0aa6e8e..3af12c772fa 100644 --- a/app/serializers/flagged_user_serializer.rb +++ b/app/serializers/flagged_user_serializer.rb @@ -3,7 +3,8 @@ class FlaggedUserSerializer < BasicUserSerializer :can_be_deleted, :post_count, :topic_count, - :ip_address + :ip_address, + :custom_fields def can_delete_all_posts scope.can_delete_all_posts?(object) @@ -17,4 +18,19 @@ class FlaggedUserSerializer < BasicUserSerializer object.ip_address.try(:to_s) 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 diff --git a/lib/flag_query.rb b/lib/flag_query.rb index 1d833200d83..e963269a4f3 100644 --- a/lib/flag_query.rb +++ b/lib/flag_query.rb @@ -129,10 +129,13 @@ module FlagQuery # TODO: add serializer so we can skip this 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, 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, total_rows ]