|
|
|
@ -47,7 +47,6 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateQuestionValidator do
|
|
|
|
|
|> validate_inclusion(:type, ["Create"])
|
|
|
|
|
|> validate_actor_presence()
|
|
|
|
|
|> validate_any_presence([:to, :cc])
|
|
|
|
|
|> validate_recipients_match(meta)
|
|
|
|
|
|> validate_actors_match(meta)
|
|
|
|
|
|> validate_object_nonexistence()
|
|
|
|
|
end
|
|
|
|
@ -75,20 +74,4 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateQuestionValidator do
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def validate_recipients_match(cng, meta) do
|
|
|
|
|
object_recipients = meta[:object_data]["to"] || []
|
|
|
|
|
|
|
|
|
|
cng
|
|
|
|
|
|> validate_change(:to, fn :to, recipients ->
|
|
|
|
|
activity_set = MapSet.new(recipients)
|
|
|
|
|
object_set = MapSet.new(object_recipients)
|
|
|
|
|
|
|
|
|
|
if MapSet.equal?(activity_set, object_set) do
|
|
|
|
|
[]
|
|
|
|
|
else
|
|
|
|
|
[{:to, "Recipients don't match with object recipients"}]
|
|
|
|
|
end
|
|
|
|
|
end)
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|