diff options
author | tusooa <tusooa@kazv.moe> | 2023-07-12 14:08:24 -0400 |
---|---|---|
committer | tusooa <tusooa@kazv.moe> | 2023-09-13 19:19:44 -0400 |
commit | 479a6f11dbbba0c945c08883956ffab198f91688 (patch) | |
tree | 396d2c5e5c325c25f852688955623c77844309d7 /lib | |
parent | e9cd004ba1b904d92b1c07446bbf03dc070cce6a (diff) | |
download | pleroma-479a6f11dbbba0c945c08883956ffab198f91688.tar.gz pleroma-479a6f11dbbba0c945c08883956ffab198f91688.zip |
Keep incoming Link tag
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/object_validators/tag_validator.ex | 14 |
1 files changed, 13 insertions, 1 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 cfd510c19..47cf7b415 100644 --- a/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/tag_validator.ex @@ -9,15 +9,20 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.TagValidator do import Ecto.Changeset + require Pleroma.Constants + @primary_key false embedded_schema do # Common field(:type, :string) field(:name, :string) - # Mention, Hashtag + # Mention, Hashtag, Link field(:href, ObjectValidators.Uri) + # Link + field(:mediaType, :string) + # Emoji embeds_one :icon, IconObjectValidator, primary_key: false do field(:type, :string) @@ -68,6 +73,13 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.TagValidator do |> validate_required([:type, :name, :icon]) end + def changeset(struct, %{"type" => "Link"} = data) do + struct + |> cast(data, [:type, :name, :mediaType, :href]) + |> validate_inclusion(:mediaType, Pleroma.Constants.activity_json_mime_types()) + |> validate_required([:type, :href, :mediaType]) + end + def changeset(struct, %{"type" => _} = data) do struct |> cast(data, []) |