mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2024-12-23 00:26:30 +00:00
ActivityPub.Utils: Only treat object ids as valid while stripping
This commit is contained in:
parent
27df2c0ce6
commit
4ef56c5b65
2 changed files with 13 additions and 7 deletions
|
@ -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])
|
||||
|
|
|
@ -23,6 +23,7 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do
|
|||
{:ok, activity} = CommonAPI.post(target_account, %{status: "foobar"})
|
||||
context = Utils.generate_context_id()
|
||||
content = "foobar"
|
||||
post_id = activity.data["id"]
|
||||
|
||||
res =
|
||||
Utils.make_flag_data(
|
||||
|
@ -30,7 +31,7 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do
|
|||
actor: reporter,
|
||||
context: context,
|
||||
account: target_account,
|
||||
statuses: [%{"id" => activity.data["id"]}],
|
||||
statuses: [%{"id" => post_id}],
|
||||
content: content
|
||||
},
|
||||
%{}
|
||||
|
@ -42,8 +43,11 @@ defmodule Pleroma.Web.ActivityPub.UtilsTest do
|
|||
|
||||
{:ok, activity} = Pleroma.Web.ActivityPub.ActivityPub.insert(res)
|
||||
|
||||
Utils.strip_report_status_data(activity)
|
||||
|> IO.inspect()
|
||||
[user_id, object | _] = activity.data["object"]
|
||||
|
||||
{:ok, stripped} = Utils.strip_report_status_data(activity)
|
||||
|
||||
assert stripped.data["object"] == [user_id, object["id"]]
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue