Bladeren bron

Add EnsureAuthenticatedPlug

tags/v0.9.9
lain 5 jaren geleden
bovenliggende
commit
3cf17dc402
2 gewijzigde bestanden met toevoegingen van 46 en 0 verwijderingen
  1. +19
    -0
      lib/pleroma/plugs/ensure_authenticated_plug.ex
  2. +27
    -0
      test/plugs/ensure_authenticated_plug_test.exs

+ 19
- 0
lib/pleroma/plugs/ensure_authenticated_plug.ex Bestand weergeven

@@ -0,0 +1,19 @@
defmodule Pleroma.Plugs.EnsureAuthenticatedPlug do
import Plug.Conn
alias Pleroma.User

def init(options) do
options
end

def call(%{assigns: %{user: %User{}}} = conn, _) do
conn
end

def call(conn, _) do
conn
|> put_resp_content_type("application/json")
|> send_resp(403, Jason.encode!(%{error: "Invalid credentials."}))
|> halt
end
end

+ 27
- 0
test/plugs/ensure_authenticated_plug_test.exs Bestand weergeven

@@ -0,0 +1,27 @@
defmodule Pleroma.Plugs.EnsureAuthenticatedPlugTest do
use Pleroma.Web.ConnCase, async: true

alias Pleroma.Plugs.EnsureAuthenticatedPlug
alias Pleroma.User

test "it halts if no user is assigned", %{conn: conn} do
conn =
conn
|> EnsureAuthenticatedPlug.call(%{})

assert conn.status == 403
assert conn.halted == true
end

test "it continues if a user is assigned", %{conn: conn} do
conn =
conn
|> assign(:user, %User{})

ret_conn =
conn
|> EnsureAuthenticatedPlug.call(%{})

assert ret_conn == conn
end
end

Laden…
Annuleren
Opslaan