From: lain <lain@soykaf.club>
Date: Tue, 11 Aug 2020 13:41:19 +0000 (+0200)
Subject: Transmogrifier: Remove handling of orphaned accepts
X-Git-Url: https://git.squeep.com/?a=commitdiff_plain;h=da3f9b9988d2cee4baa6018e6450b2d6027e1ce3;p=akkoma

Transmogrifier: Remove handling of orphaned accepts

This was a Mastodon 2.3 issue and has been fixed for a long time.
According to fediverse.networks, less than one percent of servers
still run a version this old or older.
---

diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex
index fe016e720..5ea97e9b7 100644
--- a/lib/pleroma/web/activity_pub/transmogrifier.ex
+++ b/lib/pleroma/web/activity_pub/transmogrifier.ex
@@ -391,27 +391,11 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do
 
   defp fix_content(object), do: object
 
-  defp mastodon_follow_hack(%{"id" => id, "actor" => follower_id}, followed) do
-    with true <- id =~ "follows",
-         %User{local: true} = follower <- User.get_cached_by_ap_id(follower_id),
-         %Activity{} = activity <- Utils.fetch_latest_follow(follower, followed) do
-      {:ok, activity}
-    else
-      _ -> {:error, nil}
-    end
-  end
-
-  defp mastodon_follow_hack(_, _), do: {:error, nil}
-
-  defp get_follow_activity(follow_object, followed) do
+  defp get_follow_activity(follow_object, _followed) do
     with object_id when not is_nil(object_id) <- Utils.get_ap_id(follow_object),
          {_, %Activity{} = activity} <- {:activity, Activity.get_by_ap_id(object_id)} do
       {:ok, activity}
     else
-      # Can't find the activity. This might a Mastodon 2.3 "Accept"
-      {:activity, nil} ->
-        mastodon_follow_hack(follow_object, followed)
-
       _ ->
         {:error, nil}
     end
diff --git a/test/web/activity_pub/transmogrifier/accept_handling_test.exs b/test/web/activity_pub/transmogrifier/accept_handling_test.exs
index 3c4e134ff..bc4cc227d 100644
--- a/test/web/activity_pub/transmogrifier/accept_handling_test.exs
+++ b/test/web/activity_pub/transmogrifier/accept_handling_test.exs
@@ -44,28 +44,6 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.AcceptHandlingTest do
     assert User.following?(follower, followed) == true
   end
 
-  test "it works for incoming accepts which were orphaned" do
-    follower = insert(:user)
-    followed = insert(:user, locked: true)
-
-    {:ok, _, _, follow_activity} = CommonAPI.follow(follower, followed)
-
-    accept_data =
-      File.read!("test/fixtures/mastodon-accept-activity.json")
-      |> Poison.decode!()
-      |> Map.put("actor", followed.ap_id)
-
-    accept_data =
-      Map.put(accept_data, "object", Map.put(accept_data["object"], "actor", follower.ap_id))
-
-    {:ok, activity} = Transmogrifier.handle_incoming(accept_data)
-    assert activity.data["object"] == follow_activity.data["id"]
-
-    follower = User.get_cached_by_id(follower.id)
-
-    assert User.following?(follower, followed) == true
-  end
-
   test "it works for incoming accepts which are referenced by IRI only" do
     follower = insert(:user)
     followed = insert(:user, locked: true)