mirror of
https://github.com/discourse/discourse.git
synced 2024-12-01 06:53:46 +08:00
e52ed66069
Previously it would not show up if the feature was disabled. However if posts needed approval the icon would show up and it would be confusing.
131 lines
2.7 KiB
Ruby
131 lines
2.7 KiB
Ruby
require_dependency 'new_post_manager'
|
|
|
|
class CurrentUserSerializer < BasicUserSerializer
|
|
|
|
attributes :name,
|
|
:total_unread_notifications,
|
|
:unread_notifications,
|
|
:unread_private_messages,
|
|
:admin?,
|
|
:notification_channel_position,
|
|
:site_flagged_posts_count,
|
|
:moderator?,
|
|
:staff?,
|
|
:title,
|
|
:reply_count,
|
|
:topic_count,
|
|
:enable_quoting,
|
|
:external_links_in_new_tab,
|
|
:dynamic_favicon,
|
|
:trust_level,
|
|
:can_edit,
|
|
:can_invite_to_forum,
|
|
:no_password,
|
|
:can_delete_account,
|
|
:should_be_redirected_to_top,
|
|
:redirected_to_top_reason,
|
|
:disable_jump_reply,
|
|
:custom_fields,
|
|
:muted_category_ids,
|
|
:dismissed_banner_key,
|
|
:is_anonymous,
|
|
:post_queue_new_count,
|
|
:show_queued_posts
|
|
|
|
def include_site_flagged_posts_count?
|
|
object.staff?
|
|
end
|
|
|
|
def topic_count
|
|
object.topics.count
|
|
end
|
|
|
|
def reply_count
|
|
object.user_stat.topic_reply_count
|
|
end
|
|
|
|
def site_flagged_posts_count
|
|
PostAction.flagged_posts_count
|
|
end
|
|
|
|
def can_edit
|
|
true
|
|
end
|
|
|
|
def can_invite_to_forum
|
|
true
|
|
end
|
|
|
|
def include_can_invite_to_forum?
|
|
scope.can_invite_to_forum?
|
|
end
|
|
|
|
def no_password
|
|
true
|
|
end
|
|
|
|
def include_no_password?
|
|
!object.has_password?
|
|
end
|
|
|
|
def include_can_delete_account?
|
|
scope.can_delete_user?(object)
|
|
end
|
|
|
|
def can_delete_account
|
|
true
|
|
end
|
|
|
|
def include_redirected_to_top_reason?
|
|
object.redirected_to_top_reason.present?
|
|
end
|
|
|
|
def custom_fields
|
|
fields = nil
|
|
if SiteSetting.public_user_custom_fields.present?
|
|
fields = SiteSetting.public_user_custom_fields.split('|')
|
|
end
|
|
DiscoursePluginRegistry.serialized_current_user_fields.each do |f|
|
|
fields ||= []
|
|
fields << f
|
|
end
|
|
|
|
if fields.present?
|
|
User.custom_fields_for_ids([object.id], fields)[object.id]
|
|
else
|
|
{}
|
|
end
|
|
end
|
|
|
|
def muted_category_ids
|
|
@muted_category_ids ||= CategoryUser.where(user_id: object.id,
|
|
notification_level: TopicUser.notification_levels[:muted])
|
|
.pluck(:category_id)
|
|
end
|
|
|
|
def dismissed_banner_key
|
|
object.user_profile.dismissed_banner_key
|
|
end
|
|
|
|
def is_anonymous
|
|
object.anonymous?
|
|
end
|
|
|
|
def post_queue_new_count
|
|
QueuedPost.new_count
|
|
end
|
|
|
|
def include_post_queue_new_count?
|
|
object.staff?
|
|
end
|
|
|
|
def show_queued_posts
|
|
true
|
|
end
|
|
|
|
def include_show_queued_posts?
|
|
object.staff? && (NewPostManager.queue_enabled? || QueuedPost.new_count > 0)
|
|
end
|
|
|
|
end
|