diff options
| author | silverpill <silverpill@firemail.cc> | 2022-12-30 17:26:43 +0000 | 
|---|---|---|
| committer | silverpill <silverpill@firemail.cc> | 2023-02-27 23:09:46 +0000 | 
| commit | 5cfb0578a6845db377b5679ac05aa25ee5656211 (patch) | |
| tree | a5940d3aabd1c8f02d886c63ef76e85b116381aa | |
| parent | 45646ff52cd045485c6be92713edcd0b37225bc3 (diff) | |
| download | pleroma-5cfb0578a6845db377b5679ac05aa25ee5656211.tar.gz pleroma-5cfb0578a6845db377b5679ac05aa25ee5656211.zip | |
TagValidator: Drop unrecognized tags
| -rw-r--r-- | lib/pleroma/web/activity_pub/object_validators/tag_validator.ex | 7 | ||||
| -rw-r--r-- | test/fixtures/fep-e232.json | 5 | ||||
| -rw-r--r-- | test/pleroma/web/activity_pub/transmogrifier_test.exs | 6 | 
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 | 
