diff options
author | ThibG <thib@sitedethib.com> | 2020-10-22 22:38:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-22 22:38:11 +0200 |
commit | 36e5c9d45be0e94216b5b92ea8749a00bb68e0e3 (patch) | |
tree | 3f5e2b47d242c4044f0cd69433501834399879d5 /app/controllers/activitypub/inboxes_controller.rb | |
parent | 29870d2be6c0e78132416b5561aba20d6ca3c746 (diff) | |
parent | 5c60f7eaedbc2dc6184f8b2a4d99f58fdbd5b26b (diff) |
Merge pull request #1441 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/controllers/activitypub/inboxes_controller.rb')
-rw-r--r-- | app/controllers/activitypub/inboxes_controller.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb index 0a561e7f0..fdb60d590 100644 --- a/app/controllers/activitypub/inboxes_controller.rb +++ b/app/controllers/activitypub/inboxes_controller.rb @@ -11,6 +11,7 @@ class ActivityPub::InboxesController < ActivityPub::BaseController def create upgrade_account + process_collection_synchronization process_payload head 202 end @@ -52,6 +53,19 @@ class ActivityPub::InboxesController < ActivityPub::BaseController DeliveryFailureTracker.reset!(signed_request_account.inbox_url) end + def process_collection_synchronization + raw_params = request.headers['Collection-Synchronization'] + return if raw_params.blank? || ENV['DISABLE_FOLLOWERS_SYNCHRONIZATION'] == 'true' + + # Re-using the syntax for signature parameters + tree = SignatureParamsParser.new.parse(raw_params) + params = SignatureParamsTransformer.new.apply(tree) + + ActivityPub::PrepareFollowersSynchronizationService.new.call(signed_request_account, params) + rescue Parslet::ParseFailed + Rails.logger.warn 'Error parsing Collection-Synchronization header' + end + def process_payload ActivityPub::ProcessingWorker.perform_async(signed_request_account.id, body, @account&.id) end |