discourse/app/serializers/admin_user_serializer.rb

107 lines
2.3 KiB
Ruby
Raw Normal View History

2013-02-06 03:16:51 +08:00
class AdminUserSerializer < BasicUserSerializer
2013-02-07 23:45:24 +08:00
attributes :email,
:active,
:admin,
2013-04-05 04:14:55 +08:00
:moderator,
2013-02-07 23:45:24 +08:00
:last_seen_age,
2013-02-06 03:16:51 +08:00
:last_emailed_age,
2013-02-07 23:45:24 +08:00
:created_at_age,
2013-02-06 03:16:51 +08:00
:username_lower,
:trust_level,
:trust_level_locked,
2013-02-06 03:16:51 +08:00
:flag_level,
2013-02-07 23:45:24 +08:00
:username,
:title,
2013-02-06 03:16:51 +08:00
:avatar_template,
:can_approve,
:approved,
:suspended_at,
:suspended_till,
:suspended,
:ip_address,
:registration_ip_address,
:can_send_activation_email,
:can_activate,
:can_deactivate,
:blocked,
:time_read,
:associated_accounts
2014-08-23 08:34:48 +08:00
has_one :single_sign_on_record, serializer: SingleSignOnRecordSerializer, embed: :objects
[:days_visited,:posts_read_count,:topics_entered].each do |sym|
attributes sym
define_method sym do
object.user_stat.send(sym)
end
end
2013-02-06 03:16:51 +08:00
def include_email?
# staff members can always see their email
scope.is_staff? && object.id == scope.user.id
end
alias_method :include_associated_accounts?, :include_email?
def suspended
object.suspended?
2013-02-06 03:16:51 +08:00
end
def can_impersonate
scope.can_impersonate?(object)
end
def last_emailed_age
return nil if object.last_emailed_at.blank?
AgeWords.age_words(Time.now - object.last_emailed_at)
end
def last_seen_age
return nil if object.last_seen_at.blank?
AgeWords.age_words(Time.now - object.last_seen_at)
end
def time_read
return nil if object.user_stat.time_read.blank?
AgeWords.age_words(object.user_stat.time_read)
2013-02-06 03:16:51 +08:00
end
def created_at_age
AgeWords.age_words(Time.now - object.created_at)
end
def can_approve
scope.can_approve?(object)
end
def include_can_approve?
SiteSetting.must_approve_users
end
def include_approved?
SiteSetting.must_approve_users
end
def can_send_activation_email
scope.can_send_activation_email?(object)
end
def can_activate
scope.can_activate?(object)
end
def can_deactivate
scope.can_deactivate?(object)
end
def ip_address
object.ip_address.try(:to_s)
end
def registration_ip_address
object.registration_ip_address.try(:to_s)
end
2013-02-06 03:16:51 +08:00
end