commit: 5cfb0578a6845db377b5679ac05aa25ee5656211
parent 45646ff52cd045485c6be92713edcd0b37225bc3
Author: silverpill <silverpill@firemail.cc>
Date: Fri, 30 Dec 2022 17:26:43 +0000
TagValidator: Drop unrecognized tags
Diffstat:
3 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex b/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex
@@ -68,8 +68,11 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.TagValidator do
|> validate_required([:type, :name, :icon])
end
- # Fallback
- def changeset(struct, data), do: cast(struct, data, [:type, :name])
+ def changeset(struct, %{"type" => _} = data) do
+ struct
+ |> cast(data, [])
+ |> Map.put(:action, :ignore)
+ end
def icon_changeset(struct, data) do
struct
diff --git a/test/fixtures/fep-e232.json b/test/fixtures/fep-e232.json
@@ -10,6 +10,11 @@
"published": "2022-10-01T21:30:05.211215Z",
"tag": [
{
+ "name": "@bob@example.net",
+ "type": "Mention",
+ "href": "https://example.net/users/bob"
+ },
+ {
"name": "https://example.org/objects/9",
"type": "Link",
"href": "https://example.org/objects/9",
diff --git a/test/pleroma/web/activity_pub/transmogrifier_test.exs b/test/pleroma/web/activity_pub/transmogrifier_test.exs
@@ -124,8 +124,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
assert activity.data["context"] == object.data["context"]
end
- # https://codeberg.org/fediverse/fep/src/branch/main/feps/fep-e232.md
- test "it accepts FEP-e232 link tags" do
+ test "it drops link tags" do
insert(:user, ap_id: "https://example.org/users/alice")
message = File.read!("test/fixtures/fep-e232.json") |> Jason.decode!()
@@ -136,8 +135,7 @@ defmodule Pleroma.Web.ActivityPub.TransmogrifierTest do
assert length(object.data["tag"]) == 1
tag = object.data["tag"] |> List.first()
- assert tag["type"] == "Link"
- assert tag["name"] == "https://example.org/objects/9"
+ assert tag["type"] == "Mention"
end
end