commit: a187dcefa1e0604e55eaff97a3c6403157528cdf
parent: 5d170587e3b6c1a3b3ebe0910b62a4c526e2900d
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Sun, 3 Sep 2017 01:11:23 +0200
Instantly upgrade account to ActivityPub if we receive ActivityPub payload (#4766)
Diffstat:
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb
@@ -26,8 +26,12 @@ class ActivityPub::InboxesController < Api::BaseController
end
def upgrade_account
- return unless signed_request_account.subscribed?
- Pubsubhubbub::UnsubscribeWorker.perform_async(signed_request_account.id)
+ if signed_request_account.ostatus?
+ signed_request_account.update(last_webfingered_at: nil)
+ ResolveRemoteAccountWorker.perform_async(signed_request_account.acct)
+ end
+
+ Pubsubhubbub::UnsubscribeWorker.perform_async(signed_request_account.id) if signed_request_account.subscribed?
end
def process_payload
diff --git a/app/workers/resolve_remote_account_worker.rb b/app/workers/resolve_remote_account_worker.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class ResolveRemoteAccountWorker
+ include Sidekiq::Worker
+
+ sidekiq_options queue: 'pull', unique: :until_executed
+
+ def perform(uri)
+ ResolveRemoteAccountService.new.call(uri)
+ end
+end