aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2019-07-15 14:54:40 +0700
committerEgor Kislitsyn <egor@kislitsyn.com>2019-07-15 14:54:40 +0700
commitde13c9bb8fc08b12d9694f63f92935ba39a51118 (patch)
tree38361610903bd6034f6a66dcd9e747e187d328d9 /lib
parent04f18a144bdbb58f0fc774ea5530029f166b6821 (diff)
downloadpleroma-de13c9bb8fc08b12d9694f63f92935ba39a51118.tar.gz
List messages must be visible for mentioned users
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/activity_pub/visibility.ex9
-rw-r--r--lib/pleroma/web/common_api/utils.ex2
2 files changed, 6 insertions, 5 deletions
diff --git a/lib/pleroma/web/activity_pub/visibility.ex b/lib/pleroma/web/activity_pub/visibility.ex
index e0282d758..2666edc7c 100644
--- a/lib/pleroma/web/activity_pub/visibility.ex
+++ b/lib/pleroma/web/activity_pub/visibility.ex
@@ -39,10 +39,11 @@ defmodule Pleroma.Web.ActivityPub.Visibility do
def visible_for_user?(%{actor: ap_id}, %User{ap_id: ap_id}), do: true
- def visible_for_user?(%{data: %{"listMessage" => list_ap_id}}, %User{} = user) do
- list_ap_id
- |> Pleroma.List.get_by_ap_id()
- |> Pleroma.List.member?(user)
+ def visible_for_user?(%{data: %{"listMessage" => list_ap_id}} = activity, %User{} = user) do
+ user.ap_id in activity.data["to"] ||
+ list_ap_id
+ |> Pleroma.List.get_by_ap_id()
+ |> Pleroma.List.member?(user)
end
def visible_for_user?(%{data: %{"listMessage" => _}}, nil), do: false
diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex
index fed5f9de7..f28a96320 100644
--- a/lib/pleroma/web/common_api/utils.ex
+++ b/lib/pleroma/web/common_api/utils.ex
@@ -100,7 +100,7 @@ defmodule Pleroma.Web.CommonAPI.Utils do
end
end
- def get_to_and_cc(_user, _mentions, _inReplyTo, _), do: {[], []}
+ def get_to_and_cc(_user, mentions, _inReplyTo, {:list, _}), do: {mentions, []}
def get_addressed_users(_, to) when is_list(to) do
User.get_ap_ids_by_nicknames(to)