2015-04-21 13:59:57 -04:00
require_dependency 'new_post_manager'
2013-02-05 14:16:51 -05:00
class CurrentUserSerializer < BasicUserSerializer
2013-02-25 19:42:20 +03:00
attributes :name ,
2014-10-13 06:26:30 -04:00
:total_unread_notifications ,
2013-02-25 19:42:20 +03:00
:unread_notifications ,
:unread_private_messages ,
:admin? ,
:notification_channel_position ,
2013-02-07 16:40:48 -05:00
:site_flagged_posts_count ,
2013-02-14 12:10:53 -05:00
:moderator? ,
2013-05-02 17:22:27 +10:00
:staff? ,
2015-01-22 02:28:04 +05:30
:title ,
2013-02-14 17:58:44 -05:00
:reply_count ,
2013-03-12 20:06:58 -07:00
:topic_count ,
2013-04-28 02:37:53 +02:00
:enable_quoting ,
:external_links_in_new_tab ,
2013-06-14 23:58:24 -07:00
:dynamic_favicon ,
2013-06-11 12:30:38 -04:00
:trust_level ,
2013-11-06 12:56:26 -05:00
:can_edit ,
2014-01-21 12:42:20 -05:00
:can_invite_to_forum ,
2014-02-13 11:42:35 -05:00
:no_password ,
2014-03-07 18:58:53 +01:00
:can_delete_account ,
:should_be_redirected_to_top ,
2015-09-21 20:28:20 +02:00
:redirected_to_top ,
2014-06-05 16:16:30 -04:00
:disable_jump_reply ,
2014-06-18 11:21:40 +10:00
:custom_fields ,
2014-06-18 20:04:10 +02:00
:muted_category_ids ,
2015-04-07 18:02:10 +10:00
:dismissed_banner_key ,
2015-04-10 16:29:13 -04:00
:is_anonymous ,
2015-04-21 13:59:57 -04:00
:post_queue_new_count ,
2015-09-04 16:56:02 -04:00
:show_queued_posts ,
2016-02-17 15:46:19 +11:00
:read_faq ,
:automatically_unpin_topics
2013-02-05 14:16:51 -05:00
def include_site_flagged_posts_count?
2013-05-02 17:22:27 +10:00
object . staff?
2013-02-05 14:16:51 -05:00
end
2015-09-04 16:56:02 -04:00
def read_faq
object . user_stat . read_faq?
end
2013-02-14 17:58:44 -05:00
def topic_count
2015-09-10 16:27:04 +10:00
object . user_stat . topic_count
2013-02-14 17:58:44 -05:00
end
def reply_count
2013-10-04 13:28:49 +10:00
object . user_stat . topic_reply_count
2013-02-14 12:10:53 -05:00
end
2016-02-17 15:46:19 +11:00
def enable_quoting
object . user_option . enable_quoting
end
def disable_jump_reply
object . user_option . disable_jump_reply
end
def external_links_in_new_tab
object . user_option . external_links_in_new_tab
end
def dynamic_favicon
object . user_option . dynamic_favicon
end
def automatically_unpin_topics
object . user_option . automatically_unpin_topics
end
2013-02-05 14:16:51 -05:00
def site_flagged_posts_count
PostAction . flagged_posts_count
end
2013-02-14 17:58:44 -05:00
2013-06-11 12:30:38 -04:00
def can_edit
true
end
2013-11-06 12:56:26 -05:00
def can_invite_to_forum
true
end
def include_can_invite_to_forum?
scope . can_invite_to_forum?
end
2014-01-21 12:42:20 -05:00
def no_password
true
end
def include_no_password?
! object . has_password?
end
2014-02-13 11:42:35 -05:00
def include_can_delete_account?
2014-02-13 15:51:19 -05:00
scope . can_delete_user? ( object )
2014-02-13 11:42:35 -05:00
end
def can_delete_account
2014-02-13 15:51:19 -05:00
true
2014-02-13 11:42:35 -05:00
end
2015-09-21 20:28:20 +02:00
def include_redirected_to_top?
object . redirected_to_top . present?
2014-03-07 18:58:53 +01:00
end
2014-06-05 16:16:30 -04:00
def custom_fields
2014-06-11 11:57:22 +10:00
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
2014-06-05 16:16:30 -04:00
end
2014-06-18 11:21:40 +10:00
def muted_category_ids
@muted_category_ids || = CategoryUser . where ( user_id : object . id ,
notification_level : TopicUser . notification_levels [ :muted ] )
. pluck ( :category_id )
end
2014-06-18 20:04:10 +02:00
def dismissed_banner_key
object . user_profile . dismissed_banner_key
end
2015-04-07 18:02:10 +10:00
def is_anonymous
2015-04-08 12:29:43 +10:00
object . anonymous?
2015-04-07 18:02:10 +10:00
end
2015-04-10 16:29:13 -04:00
def post_queue_new_count
QueuedPost . new_count
end
def include_post_queue_new_count?
object . staff?
end
2015-04-21 13:59:57 -04:00
def show_queued_posts
true
end
def include_show_queued_posts?
2015-05-28 11:53:59 -04:00
object . staff? && ( NewPostManager . queue_enabled? || QueuedPost . new_count > 0 )
2015-04-21 13:59:57 -04:00
end
2013-02-05 14:16:51 -05:00
end