summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsilverpill <silverpill@firemail.cc>2022-12-30 17:26:43 +0000
committersilverpill <silverpill@firemail.cc>2023-02-27 23:09:46 +0000
commit5cfb0578a6845db377b5679ac05aa25ee5656211 (patch)
treea5940d3aabd1c8f02d886c63ef76e85b116381aa
parent45646ff52cd045485c6be92713edcd0b37225bc3 (diff)
downloadpleroma-5cfb0578a6845db377b5679ac05aa25ee5656211.tar.gz
pleroma-5cfb0578a6845db377b5679ac05aa25ee5656211.zip
TagValidator: Drop unrecognized tags
-rw-r--r--lib/pleroma/web/activity_pub/object_validators/tag_validator.ex7
-rw-r--r--test/fixtures/fep-e232.json5
-rw-r--r--test/pleroma/web/activity_pub/transmogrifier_test.exs6
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
index ad968994e..cfd510c19 100644
--- 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
index 98f339589..e9d12ae35 100644
--- 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
index c0425f30c..f76606479 100644
--- 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