Merge remote-tracking branch 'pleroma/develop' into feature/disable-account
[akkoma] / lib / pleroma / web / activity_pub / mrf / simple_policy.ex
index 341b5bce36cdaa13310cc4004ae84333739a4e5e..2f105700bc7f57ffe855a21d780a029c39468d47 100644 (file)
@@ -1,5 +1,10 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
   alias Pleroma.User
+  @moduledoc "Filter activities depending on their origin instance"
   @behaviour Pleroma.Web.ActivityPub.MRF
 
   defp check_accept(%{host: actor_host} = _actor_info, object) do
@@ -7,6 +12,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
 
     cond do
       accepts == [] -> {:ok, object}
+      actor_host == Pleroma.Config.get([Pleroma.Web.Endpoint, :url, :host]) -> {:ok, object}
       Enum.member?(accepts, actor_host) -> {:ok, object}
       true -> {:reject, nil}
     end
@@ -22,9 +28,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
 
   defp check_media_removal(
          %{host: actor_host} = _actor_info,
-         %{"type" => "Create", "object" => %{"attachement" => child_attachement}} = object
+         %{"type" => "Create", "object" => %{"attachment" => child_attachment}} = object
        )
-       when length(child_attachement) > 0 do
+       when length(child_attachment) > 0 do
     object =
       if Enum.member?(Pleroma.Config.get([:mrf_simple, :media_removal]), actor_host) do
         child_object = Map.delete(object["object"], "attachment")
@@ -68,7 +74,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.SimplePolicy do
                Pleroma.Config.get([:mrf_simple, :federated_timeline_removal]),
                actor_host
              ),
-           user <- User.get_by_ap_id(object["actor"]),
+           user <- User.get_cached_by_ap_id(object["actor"]),
            true <- "https://www.w3.org/ns/activitystreams#Public" in object["to"],
            true <- user.follower_address in object["cc"] do
         to =