Add way to disable federation.
authorlain <lain@soykaf.club>
Mon, 5 Mar 2018 08:26:24 +0000 (09:26 +0100)
committerlain <lain@soykaf.club>
Mon, 5 Mar 2018 08:26:24 +0000 (09:26 +0100)
config/config.exs
lib/pleroma/web/federator/federator.ex
lib/pleroma/web/router.ex

index 01109b30f326455407dad32f6c2b23b1f50dac2d..703c10c4814f78562296d8935f35aff04894ba60 100644 (file)
@@ -49,7 +49,8 @@ config :pleroma, :instance,
   name: "Pleroma",
   email: "example@example.com",
   limit: 5000,
-  registrations_open: true
+  registrations_open: true,
+  federating: true
 
 config :pleroma, :media_proxy,
   enabled: false,
index c9f9dc7a1ec1eb677f2815f4e49e0766debc0b74..8e28976a6718b16a171bcd8ba2b8ab266044fdb6 100644 (file)
@@ -7,6 +7,8 @@ defmodule Pleroma.Web.Federator do
   @websub Application.get_env(:pleroma, :websub)
   @ostatus Application.get_env(:pleroma, :ostatus)
   @httpoison Application.get_env(:pleroma, :httpoison)
+  @instance Application.get_env(:pleroma, :instance)
+  @federating Keyword.get(@instance, :federating)
   @max_jobs 10
 
   def start_link do
@@ -80,10 +82,12 @@ defmodule Pleroma.Web.Federator do
   end
 
   def enqueue(type, payload, priority \\ 1) do
-    if Mix.env == :test do
-      handle(type, payload)
-    else
-      GenServer.cast(__MODULE__, {:enqueue, type, payload, priority})
+    if @federating do
+      if Mix.env == :test do
+        handle(type, payload)
+      else
+        GenServer.cast(__MODULE__, {:enqueue, type, payload, priority})
+      end
     end
   end
 
index 6e9f40955a929a0b93e7d356dfa3d516fbd0c439..59fb5cd6b123fdd03a74f61bf425a3aab65bee8e 100644 (file)
@@ -3,6 +3,9 @@ defmodule Pleroma.Web.Router do
 
   alias Pleroma.{Repo, User, Web.Router}
 
+  @instance Application.get_env(:pleroma, :instance)
+  @federating Keyword.get(@instance, :federating)
+
   def user_fetcher(username) do
     {:ok, Repo.get_by(User, %{nickname: username})}
   end
@@ -228,20 +231,25 @@ defmodule Pleroma.Web.Router do
     get "/objects/:uuid", OStatus.OStatusController, :object
     get "/activities/:uuid", OStatus.OStatusController, :activity
     get "/notice/:id", OStatus.OStatusController, :notice
-
     get "/users/:nickname/feed", OStatus.OStatusController, :feed
     get "/users/:nickname", OStatus.OStatusController, :feed_redirect
-    post "/users/:nickname/salmon", OStatus.OStatusController, :salmon_incoming
-    post "/push/hub/:nickname", Websub.WebsubController, :websub_subscription_request
-    get "/push/subscriptions/:id", Websub.WebsubController, :websub_subscription_confirmation
-    post "/push/subscriptions/:id", Websub.WebsubController, :websub_incoming
+
+    if @federating do
+      post "/users/:nickname/salmon", OStatus.OStatusController, :salmon_incoming
+      post "/push/hub/:nickname", Websub.WebsubController, :websub_subscription_request
+      get "/push/subscriptions/:id", Websub.WebsubController, :websub_subscription_confirmation
+      post "/push/subscriptions/:id", Websub.WebsubController, :websub_incoming
+    end
+
   end
 
-  scope "/.well-known", Pleroma.Web do
-    pipe_through :well_known
+  if @federating do
+    scope "/.well-known", Pleroma.Web do
+      pipe_through :well_known
 
-    get "/host-meta", WebFinger.WebFingerController, :host_meta
-    get "/webfinger", WebFinger.WebFingerController, :webfinger
+      get "/host-meta", WebFinger.WebFingerController, :host_meta
+      get "/webfinger", WebFinger.WebFingerController, :webfinger
+    end
   end
 
   scope "/", Pleroma.Web.MastodonAPI do