class AdminUserListSerializer < BasicUserSerializer attributes :email, :active, :admin, :moderator, :last_seen_at, :last_emailed_at, :created_at, :last_seen_age, :last_emailed_age, :created_at_age, :username_lower, :trust_level, :trust_level_locked, :flag_level, :username, :title, :avatar_template, :can_approve, :approved, :suspended_at, :suspended_till, :suspended, :blocked, :time_read [:days_visited, :posts_read_count, :topics_entered, :post_count].each do |sym| attributes sym define_method sym do object.user_stat.send(sym) end end def include_email? # staff members can always see their email (scope.is_staff? && object.id == scope.user.id) || scope.can_see_emails? end alias_method :include_associated_accounts?, :include_email? def suspended object.suspended? end def can_impersonate scope.can_impersonate?(object) end def last_emailed_at return nil if object.last_emailed_at.blank? object.last_emailed_at 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_at return nil if object.last_seen_at.blank? object.last_seen_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) end def created_at object.created_at 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 end