diff options
author | lain <lain@soykaf.club> | 2018-09-05 21:53:53 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2018-09-05 21:53:53 +0200 |
commit | e601165426154e1c04594ae1c191249d3cd36535 (patch) | |
tree | 0186c03dbe7483931e099eb6a1d75fb107c0486b | |
parent | 5ce1ebb1794205a58bedee314a7c787ceb362f37 (diff) | |
download | pleroma-e601165426154e1c04594ae1c191249d3cd36535.tar.gz |
Add UserEnabledPlug.
-rw-r--r-- | lib/pleroma/plugs/user_enabled_plug.ex | 17 | ||||
-rw-r--r-- | test/plugs/user_enabled_plug_test.exs | 35 |
2 files changed, 52 insertions, 0 deletions
diff --git a/lib/pleroma/plugs/user_enabled_plug.ex b/lib/pleroma/plugs/user_enabled_plug.ex new file mode 100644 index 000000000..9c3285896 --- /dev/null +++ b/lib/pleroma/plugs/user_enabled_plug.ex @@ -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 diff --git a/test/plugs/user_enabled_plug_test.exs b/test/plugs/user_enabled_plug_test.exs new file mode 100644 index 000000000..af877db76 --- /dev/null +++ b/test/plugs/user_enabled_plug_test.exs @@ -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 |