diff options
author | Lain Soykaf <lain@lain.com> | 2023-11-27 18:44:11 +0400 |
---|---|---|
committer | Lain Soykaf <lain@lain.com> | 2023-11-27 18:44:11 +0400 |
commit | 4ef56c5b65a4d1e7e90a87f1a1a507df523a4b4b (patch) | |
tree | e7079aebeb8876494a59cdd303f7aa08717c772a /lib | |
parent | 27df2c0ce6c214f36db742af702fc239f80764a7 (diff) | |
download | pleroma-4ef56c5b65a4d1e7e90a87f1a1a507df523a4b4b.tar.gz pleroma-4ef56c5b65a4d1e7e90a87f1a1a507df523a4b4b.zip |
ActivityPub.Utils: Only treat object ids as valid while stripping
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/utils.ex | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 073ccd615..b32f19740 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ActivityPub.Utils do alias Ecto.UUID alias Pleroma.Activity alias Pleroma.Config + alias Pleroma.EctoType.ActivityPub.ObjectValidators.ObjectID alias Pleroma.Maps alias Pleroma.Notification alias Pleroma.Object @@ -852,10 +853,11 @@ defmodule Pleroma.Web.ActivityPub.Utils do [actor | reported_activities] = activity.data["object"] stripped_activities = - Enum.map(reported_activities, fn - act when is_map(act) -> act["id"] - act when is_binary(act) -> act - _other -> nil + Enum.reduce(reported_activities, [], fn act, acc -> + case ObjectID.cast(act) do + {:ok, act} -> [act | acc] + _ -> acc + end end) new_data = put_in(activity.data, ["object"], [actor | stripped_activities]) |