logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://anongit.hacktivis.me/git/pleroma.git/
commit: 871e9e84926c93acffa72a710907b98ef88192fb
parent 1df7d428bccd1631fc7988675e4e249af129c5cd
Author: Ekaterina Vaartis <vaartis@kotobank.ch>
Date:   Thu, 19 Jun 2025 12:36:31 +0300

Make unaddressed_message? condsider [] as empty

Diffstat:

Achangelog.d/fix-report-empty-fields.fix2++
Mlib/pleroma/web/activity_pub/utils.ex6+++++-
Mtest/pleroma/web/activity_pub/activity_pub_controller_test.exs5++---
3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/changelog.d/fix-report-empty-fields.fix b/changelog.d/fix-report-empty-fields.fix @@ -0,0 +1 @@ +Fix reports being rejected when the activity had an empty CC or TO field (instead of not having them at all) +\ No newline at end of file diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex @@ -82,7 +82,11 @@ defmodule Pleroma.Web.ActivityPub.Utils do def unaddressed_message?(params), do: [params["to"], params["cc"], params["bto"], params["bcc"]] - |> Enum.all?(&is_nil(&1)) + |> Enum.all?(fn + nil -> true + [] -> true + _ -> false + end) @spec recipient_in_message(User.t(), User.t(), map()) :: boolean() def recipient_in_message(%User{ap_id: ap_id} = recipient, %User{} = actor, params), diff --git a/test/pleroma/web/activity_pub/activity_pub_controller_test.exs b/test/pleroma/web/activity_pub/activity_pub_controller_test.exs @@ -1205,9 +1205,8 @@ defmodule Pleroma.Web.ActivityPub.ActivityPubControllerTest do } ], "actor" => actor.ap_id, - "cc" => [ - reported_user.ap_id - ], + # CC and TO might either not exist at all, or be empty. We should be able to handle either. + # "cc" => [], "content" => "test", "context" => "context", "id" => "http://#{remote_domain}/activities/02be56cf-35e3-46b4-b2c6-47ae08dfee9e",