MRF: reject non-public: use pattern match to remove unnecessary if block
[akkoma] / lib / pleroma / web / activity_pub / transmogrifier.ex
index 1367bc7e3b276d6a4bca2f15267a8f4cf255f3de..4a3a8219577869efc2e839d884000a315fb24278 100644 (file)
@@ -30,6 +30,20 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
     actor["id"]
   end
 
+  @doc """
+  Checks that an imported AP object's actor matches the domain it came from.
+  """
+  def contain_origin(id, %{"actor" => actor} = params) do
+    id_uri = URI.parse(id)
+    actor_uri = URI.parse(get_actor(params))
+
+    if id_uri.host == actor_uri.host do
+      :ok
+    else
+      :error
+    end
+  end
+
   @doc """
   Modifies an incoming AP object (mastodon format) to our internal format.
   """