Skip to content
Snippets Groups Projects
Commit 6f090f98 authored by feld's avatar feld
Browse files

Attempt to fix incorrect federation of default instance avatars

parent 15aa94f4
No related branches found
No related tags found
No related merge requests found
......@@ -90,6 +90,14 @@ defmodule Pleroma.User do
end
end
# Do not return instance default avatar for federation
def avatar_url_ap(user) do
case user.avatar do
%{"url" => [%{"href" => href} | _]} -> href
_ -> nil
end
end
def banner_url(user) do
case user.info.banner do
%{"url" => [%{"href" => href} | _]} -> href
......
......@@ -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 """
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment