Fix OStatus controller to know about StaticFEController.
authorPhil Hagelberg <phil@hagelb.org>
Mon, 28 Oct 2019 02:01:18 +0000 (19:01 -0700)
committerPhil Hagelberg <phil@hagelb.org>
Sun, 10 Nov 2019 02:06:51 +0000 (18:06 -0800)
But only when it's configured to be on.

lib/pleroma/web/ostatus/ostatus_controller.ex

index 6958519de05d95acfadeecd749af7a52ec82d778..76a244d0ffc304be6682e8ef2835480fe0cb8680 100644 (file)
@@ -76,37 +76,41 @@ defmodule Pleroma.Web.OStatus.OStatusController do
   end
 
   def notice(%{assigns: %{format: format}} = conn, %{"id" => id}) do
-    with {_, %Activity{} = activity} <- {:activity, Activity.get_by_id_with_object(id)},
-         {_, true} <- {:public?, Visibility.is_public?(activity)},
-         %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
+    if Pleroma.Config.get([:instance, :static_fe], false) do
+      Pleroma.Web.StaticFE.StaticFEController.show(conn, %{"notice_id" => id})
     else
-      reason when reason in [{:public?, false}, {:activity, nil}] ->
-        conn
-        |> put_status(404)
-        |> RedirectController.redirector(nil, 404)
-
-      e ->
-        e
+      with {_, %Activity{} = activity} <- {:activity, Activity.get_by_id_with_object(id)},
+           {_, true} <- {:public?, Visibility.is_public?(activity)},
+             %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
+        reason when reason in [{:public?, false}, {:activity, nil}] ->
+          conn
+          |> put_status(404)
+          |> RedirectController.redirector(nil, 404)
+
+        e ->
+          e
+      end
     end
   end