Add UserEnabledPlug.
This commit is contained in:
parent
5ce1ebb179
commit
e601165426
17
lib/pleroma/plugs/user_enabled_plug.ex
Normal file
17
lib/pleroma/plugs/user_enabled_plug.ex
Normal 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
|
35
test/plugs/user_enabled_plug_test.exs
Normal file
35
test/plugs/user_enabled_plug_test.exs
Normal 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
|
Loading…
Reference in a new issue