Runtime configured router See merge request pleroma/pleroma!426stable
commit
0f3e78addb
@ -0,0 +1,18 @@
|
||||
defmodule Pleroma.Web.FederatingPlug do
|
||||
import Plug.Conn
|
||||
|
||||
def init(options) do
|
||||
options
|
||||
end
|
||||
|
||||
def call(conn, opts) do
|
||||
if Keyword.get(Application.get_env(:pleroma, :instance), :federating) do
|
||||
conn
|
||||
else
|
||||
conn
|
||||
|> put_status(404)
|
||||
|> Phoenix.Controller.render(Pleroma.Web.ErrorView, "404.json")
|
||||
|> halt()
|
||||
end
|
||||
end
|
||||
end
|
@ -0,0 +1,33 @@
|
||||
defmodule Pleroma.Web.FederatingPlugTest do
|
||||
use Pleroma.Web.ConnCase
|
||||
|
||||
test "returns and halt the conn when federating is disabled" do
|
||||
instance =
|
||||
Application.get_env(:pleroma, :instance)
|
||||
|> Keyword.put(:federating, false)
|
||||
|
||||
Application.put_env(:pleroma, :instance, instance)
|
||||
|
||||
conn =
|
||||
build_conn()
|
||||
|> Pleroma.Web.FederatingPlug.call(%{})
|
||||
|
||||
assert conn.status == 404
|
||||
assert conn.halted
|
||||
|
||||
instance =
|
||||
Application.get_env(:pleroma, :instance)
|
||||
|> Keyword.put(:federating, true)
|
||||
|
||||
Application.put_env(:pleroma, :instance, instance)
|
||||
end
|
||||
|
||||
test "does nothing when federating is enabled" do
|
||||
conn =
|
||||
build_conn()
|
||||
|> Pleroma.Web.FederatingPlug.call(%{})
|
||||
|
||||
refute conn.status
|
||||
refute conn.halted
|
||||
end
|
||||
end
|
Loading…
Reference in new issue