Remove collections_federation feature flag (#38508)
This commit is contained in:
parent
14544dc4dd
commit
62479b7b0a
@ -5,7 +5,7 @@ class ActivityPub::Activity::Accept < ActivityPub::Activity
|
||||
return accept_follow_for_relay if relay_follow?
|
||||
return accept_follow!(follow_request_from_object) unless follow_request_from_object.nil?
|
||||
return accept_quote!(quote_request_from_object) unless quote_request_from_object.nil?
|
||||
return accept_feature_request! if Mastodon::Feature.collections_federation_enabled? && feature_request_from_object.present?
|
||||
return accept_feature_request! if Mastodon::Feature.collections_enabled? && feature_request_from_object.present?
|
||||
|
||||
case @object['type']
|
||||
when 'Follow'
|
||||
|
||||
@ -13,12 +13,12 @@ class ActivityPub::Activity::Add < ActivityPub::Activity
|
||||
add_featured
|
||||
end
|
||||
when @account.collections_url
|
||||
return unless Mastodon::Feature.collections_federation_enabled?
|
||||
return unless Mastodon::Feature.collections_enabled?
|
||||
|
||||
add_collection
|
||||
else
|
||||
@collection = @account.collections.find_by(uri: value_or_id(@json['target']))
|
||||
add_collection_item if @collection && Mastodon::Feature.collections_federation_enabled?
|
||||
add_collection_item if @collection && Mastodon::Feature.collections_enabled?
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
class ActivityPub::Activity::Delete < ActivityPub::Activity
|
||||
def perform
|
||||
return delete_person if @account.uri == object_uri
|
||||
return delete_feature_authorization! unless !Mastodon::Feature.collections_federation_enabled? || feature_authorization_from_object.nil?
|
||||
return delete_feature_authorization! unless !Mastodon::Feature.collections_enabled? || feature_authorization_from_object.nil?
|
||||
|
||||
delete_object
|
||||
end
|
||||
|
||||
@ -4,7 +4,7 @@ class ActivityPub::Activity::FeatureRequest < ActivityPub::Activity
|
||||
include Payloadable
|
||||
|
||||
def perform
|
||||
return unless Mastodon::Feature.collections_federation_enabled?
|
||||
return unless Mastodon::Feature.collections_enabled?
|
||||
return if non_matching_uri_hosts?(@account.uri, @json['id'])
|
||||
|
||||
@collection = find_or_fetch_collection
|
||||
|
||||
@ -13,7 +13,7 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
|
||||
update_account
|
||||
elsif supported_object_type? || converted_object_type?
|
||||
update_status
|
||||
elsif equals_or_includes_any?(@object['type'], ['FeaturedCollection']) && Mastodon::Feature.collections_federation_enabled?
|
||||
elsif equals_or_includes_any?(@object['type'], ['FeaturedCollection']) && Mastodon::Feature.collections_enabled?
|
||||
update_collection
|
||||
end
|
||||
end
|
||||
|
||||
@ -474,7 +474,6 @@ class Account < ApplicationRecord
|
||||
|
||||
def featureable_by?(other_account)
|
||||
return discoverable? if local?
|
||||
return false unless Mastodon::Feature.collections_federation_enabled?
|
||||
|
||||
feature_policy_for_account(other_account).in?(%i(automatic manual))
|
||||
end
|
||||
|
||||
@ -65,7 +65,7 @@ class ActivityPub::ProcessAccountService < BaseService
|
||||
unless @options[:only_key] || @account.suspended?
|
||||
check_featured_collection! if @json['featured'].present?
|
||||
check_featured_tags_collection! if @json['featuredTags'].present?
|
||||
check_featured_collections_collection! if @json['featuredCollections'].present? && Mastodon::Feature.collections_federation_enabled?
|
||||
check_featured_collections_collection! if @json['featuredCollections'].present? && Mastodon::Feature.collections_enabled?
|
||||
check_links! if @account.fields.any?(&:requires_verification?)
|
||||
end
|
||||
|
||||
|
||||
@ -11,10 +11,8 @@ class AddAccountToCollectionService
|
||||
|
||||
@collection_item = create_collection_item
|
||||
|
||||
if Mastodon::Feature.collections_federation_enabled?
|
||||
distribute_add_activity if @account.local?
|
||||
distribute_feature_request_activity if @account.remote?
|
||||
end
|
||||
distribute_add_activity if @account.local?
|
||||
distribute_feature_request_activity if @account.remote?
|
||||
|
||||
@collection_item
|
||||
end
|
||||
|
||||
@ -9,10 +9,8 @@ class CreateCollectionService
|
||||
|
||||
@collection.save!
|
||||
|
||||
if Mastodon::Feature.collections_federation_enabled?
|
||||
distribute_add_activity
|
||||
distribute_feature_request_activities
|
||||
end
|
||||
distribute_add_activity
|
||||
distribute_feature_request_activities
|
||||
|
||||
@collection
|
||||
end
|
||||
|
||||
@ -7,7 +7,7 @@ class DeleteCollectionItemService
|
||||
|
||||
if collection_item.local?
|
||||
revoke ? @collection_item.revoke! : @collection_item.destroy!
|
||||
distribute_remove_activity if Mastodon::Feature.collections_federation_enabled?
|
||||
distribute_remove_activity
|
||||
else
|
||||
collection_item.destroy!
|
||||
end
|
||||
|
||||
@ -5,7 +5,7 @@ class DeleteCollectionService
|
||||
@collection = collection
|
||||
@collection.destroy!
|
||||
|
||||
distribute_remove_activity if Mastodon::Feature.collections_federation_enabled?
|
||||
distribute_remove_activity
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@ -10,7 +10,7 @@ class RevokeCollectionItemService < BaseService
|
||||
|
||||
@collection_item.revoke!
|
||||
|
||||
distribute_stamp_deletion! if Mastodon::Feature.collections_federation_enabled? && @collection_item.remote?
|
||||
distribute_stamp_deletion! if @collection_item.remote?
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@ -7,7 +7,7 @@ class UpdateCollectionService
|
||||
@collection = collection
|
||||
@collection.update!(params)
|
||||
|
||||
distribute_update_activity if Mastodon::Feature.collections_federation_enabled?
|
||||
distribute_update_activity
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@ -172,7 +172,7 @@ RSpec.describe ActivityPub::Activity::Accept do
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a FeatureRequest', feature: :collections_federation do
|
||||
context 'with a FeatureRequest', feature: :collections do
|
||||
let(:collection) { Fabricate(:collection, account: recipient) }
|
||||
let(:collection_item) { Fabricate(:collection_item, collection:, account: sender, state: :pending) }
|
||||
let(:object) { collection_item.activity_uri }
|
||||
|
||||
@ -80,7 +80,7 @@ RSpec.describe ActivityPub::Activity::Add do
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the target is the `featuredCollections` collection', feature: :collections_federation do
|
||||
context 'when the target is the `featuredCollections` collection', feature: :collections do
|
||||
subject { described_class.new(activity_json, account) }
|
||||
|
||||
let(:account) { Fabricate(:remote_account, collections_url: 'https://example.com/actor/1/featured_collections') }
|
||||
@ -122,7 +122,7 @@ RSpec.describe ActivityPub::Activity::Add do
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the target is a collection', feature: :collections_federation do
|
||||
context 'when the target is a collection', feature: :collections do
|
||||
subject { described_class.new(activity_json, collection.account) }
|
||||
|
||||
let(:collection) { Fabricate(:remote_collection) }
|
||||
|
||||
@ -120,7 +120,7 @@ RSpec.describe ActivityPub::Activity::Delete do
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a FeatureAuthorization', feature: :collections_federation do
|
||||
context 'with a FeatureAuthorization', feature: :collections do
|
||||
let(:recipient) { Fabricate(:account) }
|
||||
let(:approval_uri) { 'https://example.com/authorizations/1' }
|
||||
let(:collection) { Fabricate(:collection, account: recipient) }
|
||||
|
||||
@ -20,7 +20,7 @@ RSpec.describe ActivityPub::Activity::FeatureRequest do
|
||||
}
|
||||
end
|
||||
|
||||
describe '#perform', feature: :collections_federation do
|
||||
describe '#perform', feature: :collections do
|
||||
subject { described_class.new(json, sender) }
|
||||
|
||||
context 'when recipient is discoverable' do
|
||||
|
||||
@ -257,7 +257,7 @@ RSpec.describe ActivityPub::Activity::Update do
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a `FeaturedCollection` object', feature: :collections_federation do
|
||||
context 'with a `FeaturedCollection` object', feature: :collections do
|
||||
let(:collection) { Fabricate(:remote_collection, account: sender, name: 'old name', discoverable: false) }
|
||||
let(:featured_collection_json) do
|
||||
{
|
||||
|
||||
@ -802,23 +802,17 @@ RSpec.describe Account do
|
||||
let(:discoverable) { true }
|
||||
let(:feature_approval_policy) { (0b10 << 16) | 0 }
|
||||
|
||||
it 'returns `false`' do
|
||||
expect(subject.featureable_by?(local_account)).to be false
|
||||
context 'when the policy allows it' do
|
||||
it 'returns `true`' do
|
||||
expect(subject.featureable_by?(local_account)).to be true
|
||||
end
|
||||
end
|
||||
|
||||
context 'when collections federation is enabled', feature: :collections_federation do
|
||||
context 'when the policy allows it' do
|
||||
it 'returns `true`' do
|
||||
expect(subject.featureable_by?(local_account)).to be true
|
||||
end
|
||||
end
|
||||
context 'when the policy forbids it' do
|
||||
let(:feature_approval_policy) { 0 }
|
||||
|
||||
context 'when the policy forbids it' do
|
||||
let(:feature_approval_policy) { 0 }
|
||||
|
||||
it 'returns `false`' do
|
||||
expect(subject.featureable_by?(local_account)).to be false
|
||||
end
|
||||
it 'returns `false`' do
|
||||
expect(subject.featureable_by?(local_account)).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -63,7 +63,7 @@ RSpec.describe ActivityPub::ProcessAccountService do
|
||||
end
|
||||
end
|
||||
|
||||
context 'with collection URIs', feature: :collections_federation do
|
||||
context 'with collection URIs', feature: :collections do
|
||||
let(:payload) do
|
||||
{
|
||||
'id' => 'https://foo.test',
|
||||
|
||||
@ -22,14 +22,14 @@ RSpec.describe AddAccountToCollectionService do
|
||||
end
|
||||
|
||||
context 'when the account is local' do
|
||||
it 'federates an `Add` activity', feature: :collections_federation do
|
||||
it 'federates an `Add` activity' do
|
||||
subject.call(collection, account)
|
||||
|
||||
expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the account is remote', feature: :collections_federation do
|
||||
context 'when the account is remote' do
|
||||
let(:account) { Fabricate(:remote_account, feature_approval_policy: (0b10 << 16)) }
|
||||
|
||||
it 'marks the item as `pending` and federates a `FeatureRequest` activity' do
|
||||
|
||||
@ -29,7 +29,7 @@ RSpec.describe CreateCollectionService do
|
||||
expect(collection).to be_local
|
||||
end
|
||||
|
||||
it 'federates an `Add` activity', feature: :collections_federation do
|
||||
it 'federates an `Add` activity' do
|
||||
subject.call(base_params, author)
|
||||
|
||||
expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job
|
||||
@ -65,7 +65,7 @@ RSpec.describe CreateCollectionService do
|
||||
context 'when some accounts are remote' do
|
||||
let(:accounts) { Fabricate.times(2, :remote_account, feature_approval_policy: (0b10 << 16)) }
|
||||
|
||||
it 'marks the new items as `pending` and federates `FeatureRequest` activities', feature: :collections_federation do
|
||||
it 'marks the new items as `pending` and federates `FeatureRequest` activities' do
|
||||
subject.call(params, author)
|
||||
|
||||
new_collection = author.collections.last
|
||||
|
||||
@ -14,7 +14,7 @@ RSpec.describe DeleteCollectionItemService do
|
||||
end
|
||||
|
||||
context 'when the collection is local' do
|
||||
it 'federates a `Remove` activity', feature: :collections_federation do
|
||||
it 'federates a `Remove` activity' do
|
||||
subject.call(collection_item)
|
||||
|
||||
expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job
|
||||
@ -33,7 +33,7 @@ RSpec.describe DeleteCollectionItemService do
|
||||
let(:collection) { Fabricate(:remote_collection) }
|
||||
let!(:collection_item) { Fabricate(:collection_item, collection:, state: :accepted) }
|
||||
|
||||
it 'destroys the collection withouth federating anything', feature: :collections_federation do
|
||||
it 'destroys the collection withouth federating anything' do
|
||||
expect { subject.call(collection_item, revoke: true) }.to change(collection.collection_items, :count).by(-1)
|
||||
|
||||
expect(ActivityPub::AccountRawDistributionWorker).to_not have_enqueued_sidekiq_job
|
||||
|
||||
@ -12,7 +12,7 @@ RSpec.describe DeleteCollectionService do
|
||||
expect { subject.call(collection) }.to change(Collection, :count).by(-1)
|
||||
end
|
||||
|
||||
it 'federates a `Remove` activity', feature: :collections_federation do
|
||||
it 'federates a `Remove` activity' do
|
||||
subject.call(collection)
|
||||
|
||||
expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job
|
||||
|
||||
@ -12,7 +12,7 @@ RSpec.describe RevokeCollectionItemService do
|
||||
.to change { collection_item.reload.state }.from('accepted').to('revoked')
|
||||
end
|
||||
|
||||
context 'when the collection is remote', feature: :collections_federation do
|
||||
context 'when the collection is remote' do
|
||||
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') }
|
||||
|
||||
@ -16,7 +16,7 @@ RSpec.describe UpdateCollectionService do
|
||||
end
|
||||
|
||||
context 'when something actually changed' do
|
||||
it 'federates an `Update` activity', feature: :collections_federation do
|
||||
it 'federates an `Update` activity' do
|
||||
subject.call(collection, { name: 'updated' })
|
||||
|
||||
expect(ActivityPub::AccountRawDistributionWorker).to have_enqueued_sidekiq_job
|
||||
@ -24,7 +24,7 @@ RSpec.describe UpdateCollectionService do
|
||||
end
|
||||
|
||||
context 'when nothing changed' do
|
||||
it 'does not federate an activity', feature: :collections_federation do
|
||||
it 'does not federate an activity' do
|
||||
subject.call(collection, { name: collection.name })
|
||||
|
||||
expect(ActivityPub::AccountRawDistributionWorker).to_not have_enqueued_sidekiq_job
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user