forked from AkkomaGang/akkoma
Add UserEnabledPlug.
This commit is contained in:
parent
5ce1ebb179
commit
e601165426
2 changed files with 52 additions and 0 deletions
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