aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAriadne Conill <ariadne@dereferenced.org>2019-08-26 04:39:00 +0000
committerAriadne Conill <ariadne@dereferenced.org>2019-08-26 04:39:00 +0000
commitdd904ab8fa6657336f3e1f1721383c0326d22e89 (patch)
tree44a3f0f6fea1694448c783178c91c350f70d3919 /lib
parent079f1c3aa21b127eb1aefb738d1895e095653c8e (diff)
downloadpleroma-dd904ab8fa6657336f3e1f1721383c0326d22e89.tar.gz
visibility: improve visibility functions since the SQL one is gone now
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/visibility.ex7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/pleroma/web/activity_pub/visibility.ex b/lib/pleroma/web/activity_pub/visibility.ex
index 398c65d97..06eab0a7e 100644
--- a/lib/pleroma/web/activity_pub/visibility.ex
+++ b/lib/pleroma/web/activity_pub/visibility.ex
@@ -14,7 +14,10 @@ defmodule Pleroma.Web.ActivityPub.Visibility do
def is_public?(%Object{data: data}), do: is_public?(data)
def is_public?(%Activity{data: data}), do: is_public?(data)
def is_public?(%{"directMessage" => true}), do: false
- def is_public?(data), do: Pleroma.Constants.as_public() in (data["to"] ++ (data["cc"] || []))
+ def is_public?(%{"to" => to} = data), do: Pleroma.Constants.as_public() in (to ++ (data["cc"] || []))
+ def is_public?(%{"type" => "Create"}), do: false
+ def is_public?(%{"type" => _}), do: true
+ def is_public?(_), do: false
def is_private?(activity) do
with false <- is_public?(activity),
@@ -53,7 +56,7 @@ defmodule Pleroma.Web.ActivityPub.Visibility do
def visible_for_user?(activity, user) do
x = [user.ap_id | user.following]
- y = [activity.actor] ++ activity.data["to"] ++ (activity.data["cc"] || [])
+ y = [activity.actor] ++ activity.recipients
visible_for_user?(activity, nil) || Enum.any?(x, &(&1 in y))
end