logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 5cfb0578a6845db377b5679ac05aa25ee5656211
parent 45646ff52cd045485c6be92713edcd0b37225bc3
Author: silverpill <silverpill@firemail.cc>
Date:   Fri, 30 Dec 2022 17:26:43 +0000

TagValidator: Drop unrecognized tags

Diffstat:

Mlib/pleroma/web/activity_pub/object_validators/tag_validator.ex7+++++--
Mtest/fixtures/fep-e232.json5+++++
Mtest/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 @@ -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