Better handle deleted comments

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2021-08-10 20:49:17 +02:00
parent 6f9db37ca3
commit cfffe5b248
No known key found for this signature in database
GPG Key ID: A061B9DDE0CA0773
2 changed files with 9 additions and 0 deletions

View File

@ -37,6 +37,11 @@ defmodule Mobilizon.Federation.ActivityPub.Audience do
%{"to" => maybe_add_group_members([], actor), "cc" => []} %{"to" => maybe_add_group_members([], actor), "cc" => []}
end end
# Deleted comments are just like tombstones
def get_audience(%Comment{deleted_at: deleted_at}) when not is_nil(deleted_at) do
%{"to" => [@ap_public], "cc" => []}
end
def get_audience(%Comment{discussion: %Discussion{} = discussion}) do def get_audience(%Comment{discussion: %Discussion{} = discussion}) do
get_audience(discussion) get_audience(discussion)
end end

View File

@ -1110,6 +1110,10 @@ defmodule Mobilizon.Federation.ActivityPub.Transmogrifier do
{:error, error_message, object} when error_message in ["Gone", "Not found"] -> {:error, error_message, object} when error_message in ["Gone", "Not found"] ->
{:ok, object} {:ok, object}
# comments are just emptied
{:ok, %Comment{deleted_at: deleted_at} = object} when not is_nil(deleted_at) ->
{:ok, object}
{:ok, %{url: url} = object} -> {:ok, %{url: url} = object} ->
if Utils.are_same_origin?(url, Endpoint.url()), if Utils.are_same_origin?(url, Endpoint.url()),
do: {:ok, object}, do: {:ok, object},