aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/object_validators/common_validations.ex23
1 files changed, 13 insertions, 10 deletions
diff --git a/lib/pleroma/web/activity_pub/object_validators/common_validations.ex b/lib/pleroma/web/activity_pub/object_validators/common_validations.ex
index e4c5d9619..82a9d39b5 100644
--- a/lib/pleroma/web/activity_pub/object_validators/common_validations.ex
+++ b/lib/pleroma/web/activity_pub/object_validators/common_validations.ex
@@ -126,18 +126,21 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations do
end
end
- def same_domain?(cng, field_one \\ :actor, field_two \\ :object) do
- actor_uri =
- cng
- |> get_field(field_one)
- |> URI.parse()
+ def same_domain?(cng, fields \\ [:actor, :object]) do
+ unique_domains =
+ fields
+ |> Enum.map(fn field ->
+ %URI{host: host} =
+ cng
+ |> get_field(field)
+ |> URI.parse()
- object_uri =
- cng
- |> get_field(field_two)
- |> URI.parse()
+ host
+ end)
+ |> Enum.uniq()
+ |> Enum.count()
- object_uri.host == actor_uri.host
+ unique_domains == 1
end
# This figures out if a user is able to create, delete or modify something