diff --git a/app/models/account.rb b/app/models/account.rb index a25ebc4aaf..4b7597dad9 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -324,6 +324,18 @@ class Account < ApplicationRecord end end + def fields=(fields) + old_fields = self[:fields] || [] + old_fields = [] if old_fields.is_a?(Hash) + + self[:fields] = fields.map do |field| + verified_at = old_fields.find { |item| item['value'] == field['value'] }&.fetch('verified_at', nil) + next field if verified_at.blank? + + field.merge('verified_at' => verified_at) + end + end + def fields_attributes=(attributes) fields = [] old_fields = self[:fields] || [] diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb index 1304ca8242..32df8448d8 100644 --- a/app/services/activitypub/process_account_service.rb +++ b/app/services/activitypub/process_account_service.rb @@ -232,7 +232,7 @@ class ActivityPub::ProcessAccountService < BaseService def property_values return unless @json['attachment'].is_a?(Array) - as_array(@json['attachment']).select { |attachment| attachment['type'] == 'PropertyValue' }.map { |attachment| attachment.slice('name', 'value') } + as_array(@json['attachment']).filter_map { |attachment| attachment.slice('name', 'value') if attachment['type'] == 'PropertyValue' } end def mismatching_origin?(url)