2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-02-06 03:16:51 +08:00
|
|
|
class BasicUserSerializer < ApplicationSerializer
|
2024-02-26 21:40:48 +08:00
|
|
|
include UserStatusMixin
|
|
|
|
|
2018-08-21 19:58:11 +08:00
|
|
|
attributes :id, :username, :name, :avatar_template
|
|
|
|
|
|
|
|
def name
|
|
|
|
Hash === user ? user[:name] : user.try(:name)
|
|
|
|
end
|
2013-12-08 22:01:25 +08:00
|
|
|
|
2017-09-12 18:11:08 +08:00
|
|
|
def include_name?
|
|
|
|
SiteSetting.enable_names?
|
|
|
|
end
|
|
|
|
|
2014-05-22 15:37:02 +08:00
|
|
|
def avatar_template
|
|
|
|
if Hash === object
|
|
|
|
User.avatar_template(user[:username], user[:uploaded_avatar_id])
|
|
|
|
else
|
2017-09-08 13:07:22 +08:00
|
|
|
user&.avatar_template
|
2014-05-22 15:37:02 +08:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def user
|
2019-12-20 01:48:01 +08:00
|
|
|
object[:user] || object.try(:user) || object
|
2014-05-22 15:37:02 +08:00
|
|
|
end
|
2021-05-06 07:14:07 +08:00
|
|
|
|
2021-05-14 07:45:14 +08:00
|
|
|
def user_is_current_user
|
|
|
|
object.id == scope.user&.id
|
|
|
|
end
|
|
|
|
|
2021-05-06 07:14:07 +08:00
|
|
|
def categories_with_notification_level(lookup_level)
|
|
|
|
category_user_notification_levels
|
|
|
|
.select { |id, level| level == CategoryUser.notification_levels[lookup_level] }
|
|
|
|
.keys
|
|
|
|
end
|
|
|
|
|
|
|
|
def category_user_notification_levels
|
2021-05-14 07:45:14 +08:00
|
|
|
@category_user_notification_levels ||= CategoryUser.notification_levels_for(user)
|
2021-05-06 07:14:07 +08:00
|
|
|
end
|
2013-02-06 03:16:51 +08:00
|
|
|
end
|