mirror of
https://github.com/discourse/discourse.git
synced 2024-12-14 01:43:57 +08:00
28 lines
617 B
Ruby
28 lines
617 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
# A basic user serializer, with custom fields
|
||
|
class UserWithCustomFieldsSerializer < BasicUserSerializer
|
||
|
attributes :custom_fields
|
||
|
|
||
|
def custom_fields
|
||
|
fields = custom_field_keys
|
||
|
|
||
|
if fields.present?
|
||
|
if object.custom_fields_preloaded?
|
||
|
{}.tap { |h| fields.each { |f| h[f] = object.custom_fields[f] } }
|
||
|
else
|
||
|
User.custom_fields_for_ids([object.id], fields)[object.id] || {}
|
||
|
end
|
||
|
else
|
||
|
{}
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def custom_field_keys
|
||
|
# Can be extended by other serializers
|
||
|
User.whitelisted_user_custom_fields(scope)
|
||
|
end
|
||
|
end
|