in dev, allow dev FE
[akkoma] / lib / pleroma / web / plugs / federating_plug.ex
1 # Pleroma: A lightweight social networking server
2 # Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/>
3 # SPDX-License-Identifier: AGPL-3.0-only
4
5 defmodule Pleroma.Web.Plugs.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 # Definition for the use in :if_func / :unless_func plug options
23 def federating?(_conn), do: federating?()
24
25 defp fail(conn) do
26 conn
27 |> put_status(404)
28 |> Phoenix.Controller.put_view(Pleroma.Web.ErrorView)
29 |> Phoenix.Controller.render("404.json")
30 |> halt()
31 end
32 end