mirror of
https://github.com/discourse/discourse.git
synced 2024-12-24 00:43:48 +08:00
e2a7265dba
Exclude email from reviewable user serializer based on user scope.
30 lines
612 B
Ruby
30 lines
612 B
Ruby
# frozen_string_literal: true
|
|
|
|
class ReviewableUserSerializer < ReviewableSerializer
|
|
attributes :link_admin, :user_fields, :reject_reason
|
|
|
|
payload_attributes(:username, :email, :name, :bio, :website)
|
|
|
|
def link_admin
|
|
scope.is_staff? && object.target.present?
|
|
end
|
|
|
|
def user_fields
|
|
object.target.user_fields
|
|
end
|
|
|
|
def include_user_fields?
|
|
object.target.present? && object.target.user_fields.present?
|
|
end
|
|
|
|
def attributes(*args)
|
|
data = super
|
|
data[:payload]&.delete("email") if !include_email?
|
|
data
|
|
end
|
|
|
|
def include_email?
|
|
scope.can_check_emails?(scope.user)
|
|
end
|
|
end
|