mirror of
https://github.com/glitch-soc/mastodon.git
synced 2026-03-29 03:00:33 +02:00
Make sure Delete reaches collection owner (#38399)
This commit is contained in:
@@ -6,6 +6,7 @@ class RevokeCollectionItemService < BaseService
|
||||
def call(collection_item)
|
||||
@collection_item = collection_item
|
||||
@account = collection_item.account
|
||||
@collection = @collection_item.collection
|
||||
|
||||
@collection_item.revoke!
|
||||
|
||||
@@ -15,7 +16,8 @@ class RevokeCollectionItemService < BaseService
|
||||
private
|
||||
|
||||
def distribute_stamp_deletion!
|
||||
ActivityPub::AccountRawDistributionWorker.perform_async(signed_activity_json, @collection_item.collection.account_id)
|
||||
ActivityPub::DeliveryWorker.perform_async(signed_activity_json, @account.id, @collection.account.inbox_url)
|
||||
ActivityPub::AccountRawDistributionWorker.perform_async(signed_activity_json, @collection.account_id)
|
||||
end
|
||||
|
||||
def signed_activity_json
|
||||
|
||||
@@ -13,12 +13,14 @@ RSpec.describe RevokeCollectionItemService do
|
||||
end
|
||||
|
||||
context 'when the collection is remote', feature: :collections_federation do
|
||||
let(:collection) { Fabricate(:remote_collection) }
|
||||
let(:account) { Fabricate(:remote_account, inbox_url: 'https://example.com/actor/1/inbox') }
|
||||
let(:collection) { Fabricate(:remote_collection, account:) }
|
||||
let(:collection_item) { Fabricate(:collection_item, collection:, uri: 'https://example.com') }
|
||||
|
||||
it 'federates a `Delete` activity' do
|
||||
subject.call(collection_item)
|
||||
|
||||
expect(ActivityPub::DeliveryWorker).to have_enqueued_sidekiq_job.with(instance_of(String), collection_item.account_id, 'https://example.com/actor/1/inbox')
|
||||
expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user