From 01dfd6dbc8905dfaa5ab81fb9b38e52079e5ed7f Mon Sep 17 00:00:00 2001
From: Surinna Curtis <ekiru.0@gmail.com>
Date: Tue, 8 May 2018 06:30:04 -0500
Subject: [PATCH] Take the first recognized actor_type. (#7410)
---
app/services/activitypub/process_account_service.rb | 10 +++++++++-
spec/services/resolve_account_service_spec.rb | 1 +
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index cc416b6717..721c9c9283 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -71,7 +71,7 @@ class ActivityPub::ProcessAccountService < BaseService
@account.note = @json['summary'] || ''
@account.locked = @json['manuallyApprovesFollowers'] || false
@account.fields = property_values || {}
- @account.actor_type = @json['type']
+ @account.actor_type = actor_type
end
def set_fetchable_attributes!
@@ -96,6 +96,14 @@ class ActivityPub::ProcessAccountService < BaseService
ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id)
end
+ def actor_type
+ if @json['type'].is_a?(Array)
+ @json['type'].find { |type| ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES.include?(type) }
+ else
+ @json['type']
+ end
+ end
+
def image_url(key)
value = first_of_value(@json[key])
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index f4c810f758..dd7561587d 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -116,6 +116,7 @@ RSpec.describe ResolveAccountService, type: :service do
expect(account.activitypub?).to eq true
expect(account.domain).to eq 'ap.example.com'
expect(account.inbox_url).to eq 'https://ap.example.com/users/foo/inbox'
+ expect(account.actor_type).to eq 'Person'
end
end
--
GitLab