소스 검색

Add EnsureAuthenticatedPlug

tags/v0.9.9
lain 5 년 전
부모
커밋
3cf17dc402
2개의 변경된 파일46개의 추가작업 그리고 0개의 파일을 삭제
  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 파일 보기

@@ -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 파일 보기

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

불러오는 중...
취소
저장