diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-08-11 16:40:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-11 16:40:55 +0200 |
commit | 13b08610a08faf2909f7c871be62da955d9293d3 (patch) | |
tree | ff6b7804a9972bc7da5d08b8624c5052ff9c1593 | |
parent | 229f5d1681577c60e2aa0ab7240c5115acd9434a (diff) |
Fix crash when encountering invalid account fields (#16598)
* Add test * Fix crash when encountering invalid account fields
-rw-r--r-- | app/models/account.rb | 6 | ||||
-rw-r--r-- | spec/services/activitypub/process_account_service_spec.rb | 1 |
2 files changed, 6 insertions, 1 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index a6d8d1537..f7a7f4a7b 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -295,7 +295,11 @@ class Account < ApplicationRecord end def fields - (self[:fields] || []).map { |f| Field.new(self, f) } + (self[:fields] || []).map do |f| + Field.new(self, f) + rescue + nil + end.compact end def fields_attributes=(attributes) diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb index 56e7f8321..1b1d878a7 100644 --- a/spec/services/activitypub/process_account_service_spec.rb +++ b/spec/services/activitypub/process_account_service_spec.rb @@ -12,6 +12,7 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do attachment: [ { type: 'PropertyValue', name: 'Pronouns', value: 'They/them' }, { type: 'PropertyValue', name: 'Occupation', value: 'Unit test' }, + { type: 'PropertyValue', name: 'non-string', value: ['foo', 'bar'] }, ], }.with_indifferent_access end |