diff --git a/lib/federation/activity_pub/utils.ex b/lib/federation/activity_pub/utils.ex index d93384b6..c19f7688 100644 --- a/lib/federation/activity_pub/utils.ex +++ b/lib/federation/activity_pub/utils.ex @@ -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 diff --git a/lib/federation/activity_stream/converter/event.ex b/lib/federation/activity_stream/converter/event.ex index 62801441..1ec250b1 100644 --- a/lib/federation/activity_stream/converter/event.ex +++ b/lib/federation/activity_stream/converter/event.ex @@ -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]} %{