Merge branch 'fix/check-follower-collection-in-is_private' into 'develop'
authorlambda <pleromagit@rogerbraun.net>
Tue, 19 Feb 2019 14:08:19 +0000 (14:08 +0000)
committerlambda <pleromagit@rogerbraun.net>
Tue, 19 Feb 2019 14:08:19 +0000 (14:08 +0000)
properly check for follower address in is_private?

See merge request pleroma/pleroma!841

lib/pleroma/web/activity_pub/activity_pub.ex

index 8fd4c989975e831bfa70edd6dd68a6d63ea1c7dd..8d311683949e834638296861df7e6a21cde82a27 100644 (file)
@@ -878,7 +878,12 @@ defmodule Pleroma.Web.ActivityPub.ActivityPub do
   end
 
   def is_private?(activity) do
-    !is_public?(activity) && Enum.any?(activity.data["to"], &String.contains?(&1, "/followers"))
+    unless is_public?(activity) do
+      follower_address = User.get_cached_by_ap_id(activity.data["actor"]).follower_address
+      Enum.any?(activity.data["to"], &(&1 == follower_address))
+    else
+      false
+    end
   end
 
   def is_direct?(%Activity{data: %{"directMessage" => true}}), do: true