Add: プロキシアカウントを動的に識別する簡易的な仕組み
This commit is contained in:
parent
22d03b06da
commit
41c1aaf54d
3 changed files with 72 additions and 2 deletions
|
@ -4,7 +4,8 @@ require 'rails_helper'
|
|||
|
||||
RSpec.describe ActivityPub::Activity::Follow do
|
||||
let(:actor_type) { 'Person' }
|
||||
let(:sender) { Fabricate(:account, domain: 'example.com', inbox_url: 'https://example.com/inbox', actor_type: actor_type) }
|
||||
let(:note) { '' }
|
||||
let(:sender) { Fabricate(:account, domain: 'example.com', inbox_url: 'https://example.com/inbox', actor_type: actor_type, note: note) }
|
||||
let(:recipient) { Fabricate(:account) }
|
||||
|
||||
let(:json) do
|
||||
|
@ -103,6 +104,54 @@ RSpec.describe ActivityPub::Activity::Follow do
|
|||
end
|
||||
end
|
||||
|
||||
context 'when unlocked misskey proxy account but locked from bot' do
|
||||
let(:note) { 'i am proxy.' }
|
||||
|
||||
before do
|
||||
Fabricate(:instance_info, domain: 'example.com', software: 'misskey')
|
||||
recipient.user.settings['lock_follow_from_bot'] = true
|
||||
recipient.user.save!
|
||||
subject.perform
|
||||
end
|
||||
|
||||
it 'does not create a follow from sender to recipient' do
|
||||
expect(sender.following?(recipient)).to be false
|
||||
end
|
||||
|
||||
it 'creates a follow request' do
|
||||
expect(sender.requested?(recipient)).to be true
|
||||
expect(sender.follow_requests.find_by(target_account: recipient).uri).to eq 'foo'
|
||||
end
|
||||
end
|
||||
|
||||
context 'when unlocked mastodon proxy account but locked from bot' do
|
||||
let(:note) { 'i am proxy.' }
|
||||
|
||||
before do
|
||||
Fabricate(:instance_info, domain: 'example.com', software: 'mastodon')
|
||||
recipient.user.settings['lock_follow_from_bot'] = true
|
||||
recipient.user.save!
|
||||
subject.perform
|
||||
end
|
||||
|
||||
it 'does not create a follow from sender to recipient' do
|
||||
expect(sender.following?(recipient)).to be true
|
||||
end
|
||||
end
|
||||
|
||||
context 'when unlocked misskey normal account but locked from bot' do
|
||||
before do
|
||||
Fabricate(:instance_info, domain: 'example.com', software: 'misskey')
|
||||
recipient.user.settings['lock_follow_from_bot'] = true
|
||||
recipient.user.save!
|
||||
subject.perform
|
||||
end
|
||||
|
||||
it 'does not create a follow from sender to recipient' do
|
||||
expect(sender.following?(recipient)).to be true
|
||||
end
|
||||
end
|
||||
|
||||
context 'when domain block reject_straight_follow' do
|
||||
before do
|
||||
Fabricate(:domain_block, domain: 'example.com', reject_straight_follow: true)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue