forked from fedi/mastodon
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
This commit is contained in:
parent
ed19f33440
commit
6c464cd424
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue