Update pleroma.nginx
[akkoma] / test / plugs / authentication_plug_test.exs
index 9d6c2cd70dcb05241937beaf7fed6d13af960b74..729ac8ae5518da97b2cbe1df257e6ce830ca9ad3 100644 (file)
@@ -14,6 +14,13 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do
     password_hash: Comeonin.Pbkdf2.hashpwsalt("guy")
   }
 
+  @deactivated %User{
+    id: 1,
+    name: "dude",
+    password_hash: Comeonin.Pbkdf2.hashpwsalt("guy"),
+    info: %{"deactivated" => true}
+  }
+
   @session_opts [
     store: :cookie,
     key: "_test",
@@ -30,22 +37,24 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do
 
   describe "without an authorization header" do
     test "it halts the application" do
-      conn = build_conn()
-      |> Plug.Session.call(Plug.Session.init(@session_opts))
-      |> fetch_session
-      |> AuthenticationPlug.call(%{})
+      conn =
+        build_conn()
+        |> Plug.Session.call(Plug.Session.init(@session_opts))
+        |> fetch_session
+        |> AuthenticationPlug.call(%{})
 
       assert conn.status == 403
       assert conn.halted == true
     end
 
     test "it assigns a nil user if the 'optional' option is used" do
-      conn = build_conn()
-      |> Plug.Session.call(Plug.Session.init(@session_opts))
-      |> fetch_session
-      |> AuthenticationPlug.call(%{optional: true})
+      conn =
+        build_conn()
+        |> Plug.Session.call(Plug.Session.init(@session_opts))
+        |> fetch_session
+        |> AuthenticationPlug.call(%{optional: true})
 
-      assert %{ user: nil } == conn.assigns
+      assert %{user: nil} == conn.assigns
     end
   end
 
@@ -66,9 +75,9 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do
         build_conn()
         |> Plug.Session.call(Plug.Session.init(@session_opts))
         |> fetch_session
-        |> AuthenticationPlug.call(%{optional: true, fetcher: &fetch_nil/1 })
+        |> AuthenticationPlug.call(%{optional: true, fetcher: &fetch_nil/1})
 
-      assert %{ user: nil } == conn.assigns
+      assert %{user: nil} == conn.assigns
     end
   end
 
@@ -106,7 +115,7 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do
         |> put_req_header("authorization", header)
         |> AuthenticationPlug.call(opts)
 
-      assert %{ user: nil } == conn.assigns
+      assert %{user: nil} == conn.assigns
     end
   end
 
@@ -119,18 +128,40 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do
 
       header = basic_auth_enc("dude", "guy")
 
-      conn = conn
+      conn =
+        conn
         |> Plug.Session.call(Plug.Session.init(@session_opts))
         |> fetch_session
         |> put_req_header("authorization", header)
         |> AuthenticationPlug.call(opts)
 
-      assert %{ user: @user } == conn.assigns
+      assert %{user: @user} == conn.assigns
       assert get_session(conn, :user_id) == @user.id
       assert conn.halted == false
     end
   end
 
+  describe "with a correct authorization header for an deactiviated user" do
+    test "it halts the appication", %{conn: conn} do
+      opts = %{
+        optional: false,
+        fetcher: fn _ -> @deactivated end
+      }
+
+      header = basic_auth_enc("dude", "guy")
+
+      conn =
+        conn
+        |> Plug.Session.call(Plug.Session.init(@session_opts))
+        |> fetch_session
+        |> put_req_header("authorization", header)
+        |> AuthenticationPlug.call(opts)
+
+      assert conn.status == 403
+      assert conn.halted == true
+    end
+  end
+
   describe "with a user_id in the session for an existing user" do
     test "it assigns the user", %{conn: conn} do
       opts = %{
@@ -140,14 +171,15 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do
 
       header = basic_auth_enc("dude", "THIS IS WRONG")
 
-      conn = conn
+      conn =
+        conn
         |> Plug.Session.call(Plug.Session.init(@session_opts))
         |> fetch_session
         |> put_session(:user_id, @user.id)
         |> put_req_header("authorization", header)
         |> AuthenticationPlug.call(opts)
 
-      assert %{ user: @user } == conn.assigns
+      assert %{user: @user} == conn.assigns
       assert get_session(conn, :user_id) == @user.id
       assert conn.halted == false
     end
@@ -155,8 +187,9 @@ defmodule Pleroma.Plugs.AuthenticationPlugTest do
 
   describe "with an assigned user" do
     test "it does nothing, returning the incoming conn", %{conn: conn} do
-      conn = conn
-      |> assign(:user, @user)
+      conn =
+        conn
+        |> assign(:user, @user)
 
       conn_result = AuthenticationPlug.call(conn, %{})