Fix sending group events to followers on Mastodon

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2021-11-19 17:56:48 +01:00
parent d7fd30f8e6
commit 08f35169d1
No known key found for this signature in database
GPG key ID: A061B9DDE0CA0773
2 changed files with 8 additions and 5 deletions

View file

@ -458,10 +458,8 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do
Logger.debug("Making announce data for a group private object")
to =
(object["to"] || [])
|> MapSet.new()
|> MapSet.intersection(MapSet.new([actor.followers_url, actor.members_url]))
|> MapSet.to_list()
Map.get(object, "to", []) ++
Map.get(object, "cc", []) ++ [actor.followers_url, actor.members_url]
{to, []}
else
@ -478,6 +476,11 @@ defmodule Mobilizon.Federation.ActivityPub.Utils do
"cc" => cc
}
data =
if object["attributedTo"],
do: Map.put(data, "attributedTo", object["attributedTo"]),
else: data
if activity_id, do: Map.put(data, "id", activity_id), else: data
end

View file

@ -107,7 +107,7 @@ defmodule Mobilizon.Federation.ActivityStream.Converter.Event do
def model_to_as(%EventModel{} = event) do
{to, cc} =
if event.visibility == :public,
do: {[@ap_public], []},
do: {[@ap_public], [event.organizer_actor.followers_url]},
else: {[attributed_to_or_default(event).followers_url], [@ap_public]}
%{