diff options
Diffstat (limited to 'lib/pleroma/web/activity_pub')
-rw-r--r-- | lib/pleroma/web/activity_pub/utils.ex | 15 | ||||
-rw-r--r-- | lib/pleroma/web/activity_pub/views/user_view.ex | 5 |
2 files changed, 16 insertions, 4 deletions
diff --git a/lib/pleroma/web/activity_pub/utils.ex b/lib/pleroma/web/activity_pub/utils.ex index 2e9ffe41c..6d74738f0 100644 --- a/lib/pleroma/web/activity_pub/utils.ex +++ b/lib/pleroma/web/activity_pub/utils.ex @@ -230,6 +230,21 @@ defmodule Pleroma.Web.ActivityPub.Utils do end) end + # Only federate user icon if not nil + # Prevents federating instance default avatars + def maybe_make_icon(user) do + if User.avatar_url_ap(user) do + %{ + "icon" => %{ + "type" => "Image", + "url" => User.avatar_url_ap(user) + } + } + else + [] + end + end + #### Like-related helpers @doc """ diff --git a/lib/pleroma/web/activity_pub/views/user_view.ex b/lib/pleroma/web/activity_pub/views/user_view.ex index 3d00dcbf2..f5c86d360 100644 --- a/lib/pleroma/web/activity_pub/views/user_view.ex +++ b/lib/pleroma/web/activity_pub/views/user_view.ex @@ -87,16 +87,13 @@ defmodule Pleroma.Web.ActivityPub.UserView do "publicKeyPem" => public_key }, "endpoints" => endpoints, - "icon" => %{ - "type" => "Image", - "url" => User.avatar_url(user) - }, "image" => %{ "type" => "Image", "url" => User.banner_url(user) }, "tag" => user.info.source_data["tag"] || [] } + |> Map.merge(Utils.maybe_make_icon(user)) |> Map.merge(Utils.make_json_ld_header()) end |