discourse/app/serializers/basic_post_serializer.rb

59 lines
1.3 KiB
Ruby

# The most basic attributes of a topic that we need to create a link for it.
class BasicPostSerializer < ApplicationSerializer
attributes :id,
:name,
:username,
:avatar_template,
:created_at,
:cooked,
:cooked_hidden,
:ignored
def name
object.user && object.user.name
end
def username
object.user && object.user.username
end
def avatar_template
object.user && object.user.avatar_template
end
def cooked_hidden
object.hidden && !scope.is_staff?
end
def include_cooked_hidden?
cooked_hidden
end
def cooked
if cooked_hidden
if scope.current_user && object.user_id == scope.current_user.id
I18n.t('flagging.you_must_edit', path: "/my/messages")
else
I18n.t('flagging.user_must_edit')
end
elsif ignored
I18n.t('ignored.hidden_content')
else
object.filter_quotes(@parent_post)
end
end
def ignored
return false unless SiteSetting.ignore_user_enabled?
object.is_first_post? &&
scope.current_user&.id != object.user_id &&
IgnoredUser.where(user_id: scope.current_user&.id,
ignored_user_id: object.user_id).exists?
end
def include_name?
SiteSetting.enable_names?
end
end