diff options
author | lain <lain@soykaf.club> | 2020-03-31 16:11:38 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-03-31 16:11:38 +0200 |
commit | 643f15e77b7cdaaf2c22a876c98e5680edc32dc3 (patch) | |
tree | 1d97fe51203af9cf5c02d94ebf9abac9f9e5d2aa /lib | |
parent | f6835333be745cd411b5d2571c304fc7a16d645e (diff) | |
download | pleroma-643f15e77b7cdaaf2c22a876c98e5680edc32dc3.tar.gz |
Validators: ObjectID is an http uri.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/object_validators/types/object.ex | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/pleroma/web/activity_pub/object_validators/types/object.ex b/lib/pleroma/web/activity_pub/object_validators/types/object.ex index 92fc13ba8..8e70effe4 100644 --- a/lib/pleroma/web/activity_pub/object_validators/types/object.ex +++ b/lib/pleroma/web/activity_pub/object_validators/types/object.ex @@ -4,12 +4,20 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.ObjectID do def type, do: :string def cast(object) when is_binary(object) do - {:ok, object} + with %URI{ + scheme: scheme, + host: host + } + when scheme in ["https", "http"] and not is_nil(host) <- + URI.parse(object) do + {:ok, object} + else + _ -> + :error + end end - def cast(%{"id" => object}) when is_binary(object) do - {:ok, object} - end + def cast(%{"id" => object}), do: cast(object) def cast(_) do :error |