about summary refs log tree commit diff
path: root/app/controllers/activitypub
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-08-21 01:14:40 +0200
committerGitHub <noreply@github.com>2017-08-21 01:14:40 +0200
commit6e9eda53319bc970b085c7c55277981320b2a835 (patch)
tree443d418cf97adb66b330a8c6f2a809583db8b756 /app/controllers/activitypub
parent4c23544714c05258af8feab50da243039ddbefb6 (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/activitypub')
-rw-r--r--app/controllers/activitypub/inboxes_controller.rb6
1 files changed, 6 insertions, 0 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