summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLain Soykaf <lain@lain.com>2023-11-27 18:44:11 +0400
committerLain Soykaf <lain@lain.com>2023-11-27 18:44:11 +0400
commit4ef56c5b65a4d1e7e90a87f1a1a507df523a4b4b (patch)
treee7079aebeb8876494a59cdd303f7aa08717c772a /lib
parent27df2c0ce6c214f36db742af702fc239f80764a7 (diff)
downloadpleroma-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.ex10
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])