Add UserEnabledPlug.

This commit is contained in:
lain 2018-09-05 21:53:53 +02:00
parent 5ce1ebb179
commit e601165426
2 changed files with 52 additions and 0 deletions

View file

@ -0,0 +1,17 @@
defmodule Pleroma.Plugs.UserEnabledPlug do
import Plug.Conn
alias Pleroma.User
def init(options) do
options
end
def call(%{assigns: %{user: %User{info: %{"deactivated" => true}}}} = conn, _) do
conn
|> assign(:user, nil)
end
def call(conn, _) do
conn
end
end

View file

@ -0,0 +1,35 @@
defmodule Pleroma.Plugs.UserEnabledPlugTest do
use Pleroma.Web.ConnCase, async: true
alias Pleroma.Plugs.UserEnabledPlug
alias Pleroma.User
test "doesn't do anything if the user isn't set", %{conn: conn} do
ret_conn =
conn
|> UserEnabledPlug.call(%{})
assert ret_conn == conn
end
test "with a user that is deactivated, it removes that user", %{conn: conn} do
conn =
conn
|> assign(:user, %User{info: %{"deactivated" => true}})
|> UserEnabledPlug.call(%{})
assert conn.assigns.user == nil
end
test "with a user that is not deactivated, it does nothing", %{conn: conn} do
conn =
conn
|> assign(:user, %User{})
ret_conn =
conn
|> UserEnabledPlug.call(%{})
assert conn == ret_conn
end
end