Add fallback value to the admin report view.

This is to avoid 500 error when the reported user no longer exists
in the database.
This commit is contained in:
Eugenij 2019-07-02 01:27:00 +00:00 committed by kaniini
parent 79c88a257f
commit ab50c6b3ca
2 changed files with 19 additions and 1 deletions

View File

@ -46,8 +46,10 @@ defmodule Pleroma.Web.AdminAPI.ReportView do
} }
end end
defp merge_account_views(user) do defp merge_account_views(%User{} = user) do
Pleroma.Web.MastodonAPI.AccountView.render("account.json", %{user: user}) Pleroma.Web.MastodonAPI.AccountView.render("account.json", %{user: user})
|> Map.merge(Pleroma.Web.AdminAPI.AccountView.render("show.json", %{user: user})) |> Map.merge(Pleroma.Web.AdminAPI.AccountView.render("show.json", %{user: user}))
end end
defp merge_account_views(_), do: %{}
end end

View File

@ -111,4 +111,20 @@ defmodule Pleroma.Web.AdminAPI.ReportViewTest do
refute "<script> alert('hecked :D:D:D:D:D:D:D') </script>" == refute "<script> alert('hecked :D:D:D:D:D:D:D') </script>" ==
ReportView.render("show.json", %{report: activity})[:content] ReportView.render("show.json", %{report: activity})[:content]
end end
test "doesn't error out when the user doesn't exists" do
user = insert(:user)
other_user = insert(:user)
{:ok, activity} =
CommonAPI.report(user, %{
"account_id" => other_user.id,
"comment" => ""
})
Pleroma.User.delete(other_user)
Pleroma.User.invalidate_cache(other_user)
assert %{} = ReportView.render("show.json", %{report: activity})
end
end end