Do not misattribute inlined boosts if `attributedTo` isn't present (#10967)

* Do not misattribute inlined boosts if `attributedTo` isn't present

Fixes #10950

* Fix tests
main
ThibG 2019-06-04 23:24:31 +02:00 committed by Eugen Rochko
parent ed19f33440
commit 6c464cd424
2 changed files with 4 additions and 16 deletions

View File

@ -143,7 +143,7 @@ class ActivityPub::Activity
# If the boosted toot is embedded and it is a self-boost, handle it like a Create # If the boosted toot is embedded and it is a self-boost, handle it like a Create
unless unsupported_object_type? unless unsupported_object_type?
actor_id = value_or_id(first_of_value(@object['attributedTo'])) || @account.uri actor_id = value_or_id(first_of_value(@object['attributedTo']))
if actor_id == @account.uri if actor_id == @account.uri
return ActivityPub::Activity.factory({ 'type' => 'Create', 'actor' => actor_id, 'object' => @object }, @account).perform return ActivityPub::Activity.factory({ 'type' => 'Create', 'actor' => actor_id, 'object' => @object }, @account).perform

View File

@ -58,21 +58,6 @@ RSpec.describe ActivityPub::Activity::Announce do
end end
end end
context 'self-boost of a previously unknown status with missing attributedTo' do
let(:object_json) do
{
id: 'https://example.com/actor#bar',
type: 'Note',
content: 'Lorem ipsum',
to: 'http://example.com/followers',
}
end
it 'creates a reblog by sender of status' do
expect(sender.reblogged?(sender.statuses.first)).to be true
end
end
context 'self-boost of a previously unknown status with correct attributedTo' do context 'self-boost of a previously unknown status with correct attributedTo' do
let(:object_json) do let(:object_json) do
{ {
@ -122,6 +107,7 @@ RSpec.describe ActivityPub::Activity::Announce do
type: 'Note', type: 'Note',
content: 'Lorem ipsum', content: 'Lorem ipsum',
to: 'http://example.com/followers', to: 'http://example.com/followers',
attributedTo: 'https://example.com/actor',
} }
end end
@ -141,6 +127,7 @@ RSpec.describe ActivityPub::Activity::Announce do
type: 'Note', type: 'Note',
content: 'Lorem ipsum', content: 'Lorem ipsum',
to: 'http://example.com/followers', to: 'http://example.com/followers',
attributedTo: 'https://example.com/actor',
} }
end end
@ -161,6 +148,7 @@ RSpec.describe ActivityPub::Activity::Announce do
type: 'Note', type: 'Note',
content: 'Lorem ipsum', content: 'Lorem ipsum',
to: 'http://example.com/followers', to: 'http://example.com/followers',
attributedTo: 'https://example.com/actor',
} }
end end