diff options
author | lain <lain@soykaf.club> | 2020-04-29 14:53:53 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-04-29 14:53:53 +0200 |
commit | 20587aa931262a5479c98f13450311a135c5d356 (patch) | |
tree | 461eb6ed1b33a28a2452ad16c06693d71ac9b5c8 /lib | |
parent | a88734a0a22810bcc47c17fc9120ef7881d670d8 (diff) | |
download | pleroma-20587aa931262a5479c98f13450311a135c5d356.tar.gz |
Chat message creation: Check actor.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex index 88e903182..fc582400b 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -45,6 +45,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator do |> validate_inclusion(:type, ["Create"]) |> validate_actor_presence() |> validate_recipients_match(meta) + |> validate_actors_match(meta) |> validate_object_nonexistence() end @@ -59,6 +60,19 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator do end) end + def validate_actors_match(cng, meta) do + object_actor = meta[:object_data]["actor"] + + cng + |> validate_change(:actor, fn :actor, actor -> + if actor == object_actor do + [] + else + [{:actor, "Actor doesn't match with object actor"}] + end + end) + end + def validate_recipients_match(cng, meta) do object_recipients = meta[:object_data]["to"] || [] |