Kaynağa Gözat

Add EnsureAuthenticatedPlug

tags/v0.9.9
lain 5 yıl önce
ebeveyn
işleme
3cf17dc402
2 değiştirilmiş dosya ile 46 ekleme ve 0 silme
  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 Dosyayı Görüntüle

@@ -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 Dosyayı Görüntüle

@@ -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

Yükleniyor…
İptal
Kaydet