Fix crash when processing Flag activity with no status (#26189)
parent
b4e739ff0f
commit
6c3c5bbbc3
|
@ -9,7 +9,7 @@ class ActivityPub::Activity::Flag < ActivityPub::Activity
|
||||||
|
|
||||||
target_accounts.each do |target_account|
|
target_accounts.each do |target_account|
|
||||||
target_statuses = target_statuses_by_account[target_account.id]
|
target_statuses = target_statuses_by_account[target_account.id]
|
||||||
replied_to_accounts = Account.local.where(id: target_statuses.filter_map(&:in_reply_to_account_id))
|
replied_to_accounts = target_statuses.nil? ? [] : Account.local.where(id: target_statuses.filter_map(&:in_reply_to_account_id))
|
||||||
|
|
||||||
next if target_account.suspended? || (!target_account.local? && replied_to_accounts.none?)
|
next if target_account.suspended? || (!target_account.local? && replied_to_accounts.none?)
|
||||||
|
|
||||||
|
|
|
@ -139,6 +139,35 @@ RSpec.describe ActivityPub::Activity::Flag do
|
||||||
expect(report.status_ids).to eq []
|
expect(report.status_ids).to eq []
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when an account is passed but no status' do
|
||||||
|
let(:mentioned) { Fabricate(:account) }
|
||||||
|
|
||||||
|
let(:json) do
|
||||||
|
{
|
||||||
|
'@context': 'https://www.w3.org/ns/activitystreams',
|
||||||
|
id: flag_id,
|
||||||
|
type: 'Flag',
|
||||||
|
content: 'Boo!!',
|
||||||
|
actor: ActivityPub::TagManager.instance.uri_for(sender),
|
||||||
|
object: [
|
||||||
|
ActivityPub::TagManager.instance.uri_for(flagged),
|
||||||
|
],
|
||||||
|
}.with_indifferent_access
|
||||||
|
end
|
||||||
|
|
||||||
|
before do
|
||||||
|
subject.perform
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'creates a report with no attached status' do
|
||||||
|
report = Report.find_by(account: sender, target_account: flagged)
|
||||||
|
|
||||||
|
expect(report).to_not be_nil
|
||||||
|
expect(report.comment).to eq 'Boo!!'
|
||||||
|
expect(report.status_ids).to eq []
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#perform with a defined uri' do
|
describe '#perform with a defined uri' do
|
||||||
|
|
Loading…
Reference in New Issue