From 3b71612d3d8b5e2ad53bda4399eb7f687cd6c30e Mon Sep 17 00:00:00 2001
From: Egor Kislitsyn <egor@kislitsyn.com>
Date: Sat, 18 May 2019 01:17:14 +0700
Subject: [PATCH] Improve Pleroma.Web.ActivityPub.ActivityPub.maybe_update_cc/3

---
 lib/pleroma/web/activity_pub/activity_pub.ex | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex
index 048b9202b..8a5b3b8b4 100644
--- a/lib/pleroma/web/activity_pub/activity_pub.ex
+++ b/lib/pleroma/web/activity_pub/activity_pub.ex
@@ -881,14 +881,12 @@ def fetch_activities(recipients, opts \\ %{}) do
     |> maybe_update_cc(list_memberships, opts["user"])
   end
 
-  defp maybe_update_cc(activities, [], _), do: activities
-  defp maybe_update_cc(activities, _, nil), do: activities
-
-  defp maybe_update_cc(activities, list_memberships, user) do
+  defp maybe_update_cc(activities, list_memberships, %User{ap_id: user_ap_id})
+       when is_list(list_memberships) and length(list_memberships) > 0 do
     Enum.map(activities, fn
-      %{data: %{"bcc" => bcc}} = activity when is_list(bcc) ->
+      %{data: %{"bcc" => bcc}} = activity when is_list(bcc) and length(bcc) > 0 ->
         if Enum.any?(bcc, &(&1 in list_memberships)) do
-          update_in(activity.data["cc"], &[user.ap_id | &1])
+          update_in(activity.data["cc"], &[user_ap_id | &1])
         else
           activity
         end
@@ -898,6 +896,8 @@ defp maybe_update_cc(activities, list_memberships, user) do
     end)
   end
 
+  defp maybe_update_cc(activities, _, _), do: activities
+
   def fetch_activities_bounded(recipients_to, recipients_cc, opts \\ %{}) do
     fetch_activities_query([], opts)
     |> restrict_to_cc(recipients_to, recipients_cc)