diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-08-21 01:14:40 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-21 01:14:40 +0200 |
commit | 6e9eda53319bc970b085c7c55277981320b2a835 (patch) | |
tree | 443d418cf97adb66b330a8c6f2a809583db8b756 /app/controllers | |
parent | 4c23544714c05258af8feab50da243039ddbefb6 (diff) |
ActivityPub migration procedure (#4617)
* ActivityPub migration procedure Once one account is detected as going from OStatus to ActivityPub, invalidate WebFinger cache for other accounts from the same domain * Unsubscribe from PuSH updates once we receive an ActivityPub payload * Re-subscribe to PuSH unless already unsubscribed, regardless of protocol
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/activitypub/inboxes_controller.rb | 6 | ||||
-rw-r--r-- | app/controllers/admin/accounts_controller.rb | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb index 0f49b4399..078494c20 100644 --- a/app/controllers/activitypub/inboxes_controller.rb +++ b/app/controllers/activitypub/inboxes_controller.rb @@ -7,6 +7,7 @@ class ActivityPub::InboxesController < Api::BaseController def create if signed_request_account + upgrade_account process_payload head 201 else @@ -24,6 +25,11 @@ class ActivityPub::InboxesController < Api::BaseController @body ||= request.body.read end + def upgrade_account + return unless signed_request_account.subscribed? + Pubsubhubbub::UnsubscribeWorker.perform_async(signed_request_account.id) + end + def process_payload ActivityPub::ProcessingWorker.perform_async(signed_request_account.id, body.force_encoding('UTF-8')) end diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb index 7bceee2cd..54c659e1b 100644 --- a/app/controllers/admin/accounts_controller.rb +++ b/app/controllers/admin/accounts_controller.rb @@ -17,7 +17,7 @@ module Admin end def unsubscribe - UnsubscribeService.new.call(@account) + Pubsubhubbub::UnsubscribeWorker.perform_async(@account.id) redirect_to admin_account_path(@account.id) end |