aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2018-03-05 09:26:24 +0100
committerlain <lain@soykaf.club>2018-03-05 09:26:24 +0100
commit0e20d5529a090f12636caccb41e5e040786eb0c6 (patch)
treec4b5ecd70a5d34ced87b1d342270833a563bc74d
parente98aeabbdebee8f6c9a10d0c9e3f48c1031172cb (diff)
downloadpleroma-0e20d5529a090f12636caccb41e5e040786eb0c6.tar.gz
Add way to disable federation.
-rw-r--r--config/config.exs3
-rw-r--r--lib/pleroma/web/federator/federator.ex12
-rw-r--r--lib/pleroma/web/router.ex26
3 files changed, 27 insertions, 14 deletions
diff --git a/config/config.exs b/config/config.exs
index 01109b30f..703c10c48 100644
--- a/config/config.exs
+++ b/config/config.exs
@@ -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,
diff --git a/lib/pleroma/web/federator/federator.ex b/lib/pleroma/web/federator/federator.ex
index c9f9dc7a1..8e28976a6 100644
--- a/lib/pleroma/web/federator/federator.ex
+++ b/lib/pleroma/web/federator/federator.ex
@@ -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
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 6e9f40955..59fb5cd6b 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -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