aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-04-29 14:53:53 +0200
committerlain <lain@soykaf.club>2020-04-29 14:53:53 +0200
commit20587aa931262a5479c98f13450311a135c5d356 (patch)
tree461eb6ed1b33a28a2452ad16c06693d71ac9b5c8 /lib
parenta88734a0a22810bcc47c17fc9120ef7881d670d8 (diff)
downloadpleroma-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.ex14
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"] || []