Class: AdminDetailedUserSerializer

Inherits:
AdminUserSerializer show all
Defined in:
app/serializers/admin_detailed_user_serializer.rb

Instance Method Summary collapse

Methods inherited from AdminUserSerializer

#can_activate, #can_approve, #can_deactivate, #can_send_activation_email, #include_can_approve?, #ip_address, #registration_ip_address

Methods inherited from AdminUserListSerializer

#can_impersonate, #created_at_age, #include_approved?, #include_email?, #include_second_factor_enabled?, #include_silenced?, #include_silenced_till?, #include_suspended_at?, #include_suspended_till?, #last_emailed_age, #last_emailed_at, #last_seen_age, #last_seen_at, #silenced, #silenced_till, #time_read

Methods inherited from BasicUserSerializer

#avatar_template, #categories_with_notification_level, #category_user_notification_levels, #include_name?, #name, #user, #user_is_current_user

Methods inherited from ApplicationSerializer

expire_cache_fragment!, fragment_cache

Methods inherited from ActiveModel::Serializer

#include!

Instance Method Details

#api_key_countObject



146
147
148
# File 'app/serializers/admin_detailed_user_serializer.rb', line 146

def api_key_count
  object.api_keys.active.count
end

#bounce_scoreObject



130
131
132
# File 'app/serializers/admin_detailed_user_serializer.rb', line 130

def bounce_score
  object.user_stat.bounce_score
end

#can_be_anonymizedObject



80
81
82
# File 'app/serializers/admin_detailed_user_serializer.rb', line 80

def can_be_anonymized
  scope.can_anonymize_user?(object)
end

#can_be_deletedObject



76
77
78
# File 'app/serializers/admin_detailed_user_serializer.rb', line 76

def can_be_deleted
  scope.can_delete_user?(object)
end

#can_be_mergedObject



84
85
86
# File 'app/serializers/admin_detailed_user_serializer.rb', line 84

def can_be_merged
  scope.can_merge_user?(object)
end

#can_delete_all_postsObject



72
73
74
# File 'app/serializers/admin_detailed_user_serializer.rb', line 72

def can_delete_all_posts
  scope.can_delete_all_posts?(object)
end

#can_delete_sso_recordObject



181
182
183
# File 'app/serializers/admin_detailed_user_serializer.rb', line 181

def can_delete_sso_record
  scope.can_delete_sso_record?(object)
end

#can_disable_second_factorObject



52
53
54
# File 'app/serializers/admin_detailed_user_serializer.rb', line 52

def can_disable_second_factor
  scope.is_admin? && (object&.id != scope.user.id)
end

#can_grant_adminObject



60
61
62
# File 'app/serializers/admin_detailed_user_serializer.rb', line 60

def can_grant_admin
  scope.can_grant_admin?(object)
end

#can_grant_moderationObject



68
69
70
# File 'app/serializers/admin_detailed_user_serializer.rb', line 68

def can_grant_moderation
  scope.can_grant_moderation?(object)
end

#can_revoke_adminObject



56
57
58
# File 'app/serializers/admin_detailed_user_serializer.rb', line 56

def can_revoke_admin
  scope.can_revoke_admin?(object)
end

#can_revoke_moderationObject



64
65
66
# File 'app/serializers/admin_detailed_user_serializer.rb', line 64

def can_revoke_moderation
  scope.can_revoke_moderation?(object)
end

#can_view_action_logsObject



138
139
140
# File 'app/serializers/admin_detailed_user_serializer.rb', line 138

def can_view_action_logs
  scope.can_view_action_logs?(object)
end

#external_idsObject



150
151
152
153
154
155
156
157
158
# File 'app/serializers/admin_detailed_user_serializer.rb', line 150

def external_ids
  external_ids = {}

  object.user_associated_accounts.map do ||
    external_ids[.provider_name] = .provider_uid
  end

  external_ids
end

#include_api_key?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'app/serializers/admin_detailed_user_serializer.rb', line 92

def include_api_key?
  scope.is_admin? && api_key.present?
end

#include_similar_users?Boolean

Returns:

  • (Boolean)


169
170
171
# File 'app/serializers/admin_detailed_user_serializer.rb', line 169

def include_similar_users?
  @options[:similar_users].present?
end

#include_similar_users_count?Boolean

Returns:

  • (Boolean)


177
178
179
# File 'app/serializers/admin_detailed_user_serializer.rb', line 177

def include_similar_users_count?
  @options[:similar_users].present?
end

#include_tl3_requirements?Boolean

Returns:

  • (Boolean)


122
123
124
# File 'app/serializers/admin_detailed_user_serializer.rb', line 122

def include_tl3_requirements?
  object.has_trust_level?(TrustLevel[2])
end

#include_user_fields?Boolean

Returns:

  • (Boolean)


126
127
128
# File 'app/serializers/admin_detailed_user_serializer.rb', line 126

def include_user_fields?
  object.user_fields.present?
end

#next_penaltyObject



108
109
110
111
112
113
114
115
116
# File 'app/serializers/admin_detailed_user_serializer.rb', line 108

def next_penalty
  step_number = penalty_counts.total
  steps = SiteSetting.penalty_step_hours.split("|")
  step_number = [step_number, steps.length].min
  penalty_hours = steps[step_number]
  Integer(penalty_hours, 10).hours.from_now
rescue StandardError
  nil
end

#penalty_countsObject



104
105
106
# File 'app/serializers/admin_detailed_user_serializer.rb', line 104

def penalty_counts
  TrustLevel3Requirements.new(object).penalty_counts
end

#post_countObject



142
143
144
# File 'app/serializers/admin_detailed_user_serializer.rb', line 142

def post_count
  object.posts.count
end

#reset_bounce_score_afterObject



134
135
136
# File 'app/serializers/admin_detailed_user_serializer.rb', line 134

def reset_bounce_score_after
  object.user_stat.reset_bounce_score_after
end

#second_factor_enabledObject



48
49
50
# File 'app/serializers/admin_detailed_user_serializer.rb', line 48

def second_factor_enabled
  object.totp_enabled? || object.security_keys_enabled?
end

#silence_reasonObject



100
101
102
# File 'app/serializers/admin_detailed_user_serializer.rb', line 100

def silence_reason
  object.silence_reason
end

#silenced_byObject



118
119
120
# File 'app/serializers/admin_detailed_user_serializer.rb', line 118

def silenced_by
  object.silenced_record.try(:acting_user)
end

#similar_usersObject



160
161
162
163
164
165
166
167
# File 'app/serializers/admin_detailed_user_serializer.rb', line 160

def similar_users
  ActiveModel::ArraySerializer.new(
    @options[:similar_users],
    each_serializer: SimilarAdminUserSerializer,
    scope: scope,
    root: false,
  ).as_json
end

#similar_users_countObject



173
174
175
# File 'app/serializers/admin_detailed_user_serializer.rb', line 173

def similar_users_count
  @options[:similar_users_count]
end

#suspended_byObject



96
97
98
# File 'app/serializers/admin_detailed_user_serializer.rb', line 96

def suspended_by
  object.suspend_record.try(:acting_user)
end

#topic_countObject



88
89
90
# File 'app/serializers/admin_detailed_user_serializer.rb', line 88

def topic_count
  object.topics.count
end