report federating status in nodeinfo
authorhref <href@random.sh>
Mon, 11 Nov 2019 18:03:43 +0000 (19:03 +0100)
committerhref <href@random.sh>
Mon, 11 Nov 2019 18:03:43 +0000 (19:03 +0100)
lib/pleroma/web/nodeinfo/nodeinfo_controller.ex
test/web/node_info_test.exs

index d7ae503f60ec16dc0db7e126a349f476fdaeceaf..486b9f6a4dce7d685a92e08ea42de1610f7445f5 100644 (file)
@@ -46,6 +46,7 @@ defmodule Pleroma.Web.Nodeinfo.NodeinfoController do
 
         data
         |> Map.merge(%{quarantined_instances: quarantined})
+        |> Map.put(:enabled, Config.get([:instance, :federating]))
       else
         %{}
       end
index a3281b25b7235036797bffd055ebce706d41be2e..6cc8766020d02f4943a8ca71b4dd8c6083878f90 100644 (file)
@@ -84,6 +84,30 @@ defmodule Pleroma.Web.NodeInfoTest do
     Pleroma.Config.put([:instance, :safe_dm_mentions], option)
   end
 
+  test "it shows if federation is enabled/disabled", %{conn: conn} do
+    original = Pleroma.Config.get([:instance, :federating])
+
+    Pleroma.Config.put([:instance, :federating], true)
+
+    response =
+      conn
+      |> get("/nodeinfo/2.1.json")
+      |> json_response(:ok)
+
+    assert response["metadata"]["federation"]["enabled"] == true
+
+    Pleroma.Config.put([:instance, :federating], false)
+
+    response =
+      conn
+      |> get("/nodeinfo/2.1.json")
+      |> json_response(:ok)
+
+    assert response["metadata"]["federation"]["enabled"] == false
+
+    Pleroma.Config.put([:instance, :federating], original)
+  end
+
   test "it shows MRF transparency data if enabled", %{conn: conn} do
     config = Pleroma.Config.get([:instance, :rewrite_policy])
     Pleroma.Config.put([:instance, :rewrite_policy], [Pleroma.Web.ActivityPub.MRF.SimplePolicy])