Fix OStatus controller to know about StaticFEController.

But only when it's configured to be on.
This commit is contained in:
Phil Hagelberg 2019-10-27 19:01:18 -07:00
parent e79d8985ab
commit 0cf04e1088
1 changed files with 33 additions and 29 deletions

View File

@ -76,37 +76,41 @@ def activity(%{assigns: %{format: format}} = conn, %{"uuid" => uuid}) do
end end
def notice(%{assigns: %{format: format}} = conn, %{"id" => id}) do def notice(%{assigns: %{format: format}} = conn, %{"id" => id}) do
with {_, %Activity{} = activity} <- {:activity, Activity.get_by_id_with_object(id)}, if Pleroma.Config.get([:instance, :static_fe], false) do
{_, true} <- {:public?, Visibility.is_public?(activity)}, Pleroma.Web.StaticFE.StaticFEController.show(conn, %{"notice_id" => id})
%User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
cond do
format == "html" && activity.data["type"] == "Create" ->
%Object{} = object = Object.normalize(activity)
RedirectController.redirector_with_meta(
conn,
%{
activity_id: activity.id,
object: object,
url: Router.Helpers.o_status_url(Endpoint, :notice, activity.id),
user: user
}
)
format == "html" ->
RedirectController.redirector(conn, nil)
true ->
represent_activity(conn, format, activity, user)
end
else else
reason when reason in [{:public?, false}, {:activity, nil}] -> with {_, %Activity{} = activity} <- {:activity, Activity.get_by_id_with_object(id)},
conn {_, true} <- {:public?, Visibility.is_public?(activity)},
|> put_status(404) %User{} = user <- User.get_cached_by_ap_id(activity.data["actor"]) do
|> RedirectController.redirector(nil, 404) cond do
format == "html" && activity.data["type"] == "Create" ->
%Object{} = object = Object.normalize(activity)
e -> RedirectController.redirector_with_meta(
e conn,
%{
activity_id: activity.id,
object: object,
url: Router.Helpers.o_status_url(Endpoint, :notice, activity.id),
user: user
}
)
format == "html" ->
RedirectController.redirector(conn, nil)
true ->
represent_activity(conn, format, activity, user)
end
else
reason when reason in [{:public?, false}, {:activity, nil}] ->
conn
|> put_status(404)
|> RedirectController.redirector(nil, 404)
e ->
e
end
end end
end end