diff options
author | Egor Kislitsyn <egor@kislitsyn.com> | 2019-07-15 14:54:40 +0700 |
---|---|---|
committer | Egor Kislitsyn <egor@kislitsyn.com> | 2019-07-15 14:54:40 +0700 |
commit | de13c9bb8fc08b12d9694f63f92935ba39a51118 (patch) | |
tree | 38361610903bd6034f6a66dcd9e747e187d328d9 /lib | |
parent | 04f18a144bdbb58f0fc774ea5530029f166b6821 (diff) | |
download | pleroma-de13c9bb8fc08b12d9694f63f92935ba39a51118.tar.gz |
List messages must be visible for mentioned users
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/web/activity_pub/visibility.ex | 9 | ||||
-rw-r--r-- | lib/pleroma/web/common_api/utils.ex | 2 |
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) |