discourse/app/serializers/reviewable_user_serializer.rb
Krzysztof Kotlarek 9cea284fee
FEATURE: Add IP lookup to review interface (#36130)
Adds IP lookup functionality to the reviewable item view, allowing staff
members to quickly look up user IPs when reviewing flagged content.

Screenshots
<img width="1110" height="882" alt="Screenshot 2025-11-20 at 11 19
26 am"
src="https://github.com/user-attachments/assets/c14e5908-477d-4cf1-bfcc-5b910f0d3040"
/>
<img width="461" height="951" alt="Screenshot 2025-11-20 at 11 20 10 am"
src="https://github.com/user-attachments/assets/1fa54ebf-ebb3-4cc7-a8f1-a9bf304a9d58"
/>
2025-11-20 12:23:03 +08:00

46 lines
906 B
Ruby
Vendored

# frozen_string_literal: true
class ReviewableUserSerializer < ReviewableSerializer
attributes :link_admin, :user_fields, :reject_reason, :target_user
payload_attributes(
:username,
:email,
:name,
:bio,
:website,
:scrubbed_by,
:scrubbed_reason,
:scrubbed_at,
)
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
def target_user
FlaggedUserSerializer.new(object.target, scope: scope, root: false).as_json
end
def include_target_user?
scope.can_see_reviewable_ui_refresh? && object.target
end
end