Add SetUserSessionIdPlug.
This commit is contained in:
parent
636ad3e155
commit
5ce1ebb179
|
@ -0,0 +1,15 @@
|
||||||
|
defmodule Pleroma.Plugs.SetUserSessionIdPlug do
|
||||||
|
import Plug.Conn
|
||||||
|
alias Pleroma.User
|
||||||
|
|
||||||
|
def init(opts) do
|
||||||
|
opts
|
||||||
|
end
|
||||||
|
|
||||||
|
def call(%{assigns: %{user: %User{id: id}}} = conn, _) do
|
||||||
|
conn
|
||||||
|
|> put_session(:user_id, id)
|
||||||
|
end
|
||||||
|
|
||||||
|
def call(conn, _), do: conn
|
||||||
|
end
|
|
@ -0,0 +1,39 @@
|
||||||
|
defmodule Pleroma.Plugs.SetUserSessionIdPlugTest do
|
||||||
|
use Pleroma.Web.ConnCase, async: true
|
||||||
|
|
||||||
|
alias Pleroma.Plugs.SetUserSessionIdPlug
|
||||||
|
alias Pleroma.User
|
||||||
|
|
||||||
|
setup %{conn: conn} do
|
||||||
|
session_opts = [
|
||||||
|
store: :cookie,
|
||||||
|
key: "_test",
|
||||||
|
signing_salt: "cooldude"
|
||||||
|
]
|
||||||
|
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> Plug.Session.call(Plug.Session.init(session_opts))
|
||||||
|
|> fetch_session
|
||||||
|
|
||||||
|
%{conn: conn}
|
||||||
|
end
|
||||||
|
|
||||||
|
test "doesn't do anything if the user isn't set", %{conn: conn} do
|
||||||
|
ret_conn =
|
||||||
|
conn
|
||||||
|
|> SetUserSessionIdPlug.call(%{})
|
||||||
|
|
||||||
|
assert ret_conn == conn
|
||||||
|
end
|
||||||
|
|
||||||
|
test "sets the user_id in the session to the user id of the user assign", %{conn: conn} do
|
||||||
|
conn =
|
||||||
|
conn
|
||||||
|
|> assign(:user, %User{id: 1})
|
||||||
|
|> SetUserSessionIdPlug.call(%{})
|
||||||
|
|
||||||
|
id = get_session(conn, :user_id)
|
||||||
|
assert id == 1
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue