Merge remote-tracking branch 'remotes/origin/develop' into 1560-non-federating-instan...
[akkoma] / lib / pleroma / plugs / federating_plug.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.FederatingPlug do
6 import Plug.Conn
7
8 def init(options) do
9 options
10 end
11
12 def call(conn, _opts) do
13 if federating?() do
14 conn
15 else
16 fail(conn)
17 end
18 end
19
20 def federating?, do: Pleroma.Config.get([:instance, :federating])
21
22 def fail(conn) do
23 conn
24 |> put_status(404)
25 |> Phoenix.Controller.put_view(Pleroma.Web.ErrorView)
26 |> Phoenix.Controller.render("404.json")
27 |> halt()
28 end
29 end