From 4dfb40a5467f6206b2793bdafbd82a7ae4ee04bf Mon Sep 17 00:00:00 2001 From: csaurus Date: Mon, 14 May 2018 21:46:09 -0400 Subject: [PATCH] Handle cases where a to/cc field is absent on a status --- lib/pleroma/web/activity_pub/activity_pub.ex | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index f7f6d047e..4ce2e6052 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -239,9 +239,11 @@ defp restrict_visibility(query, %{visibility: "direct"}) do activity in query, join: sender in User, on: sender.ap_id == activity.actor, + # Are non-direct statuses with no to/cc possible? where: - fragment("not data->'to' \\? ?", ^public) and fragment("not data->'cc' \\? ?", ^public) and - fragment("not data->'to' \\? ?", sender.follower_address) + fragment("not coalesce(data->'to' \\? ?, false)", ^public) and + fragment("not coalesce(data->'cc' \\? ?, false)", ^public) and + fragment("not coalesce(data->'to' \\? ?, false)", sender.follower_address) ) end