Browse Source

Add SetUserSessionIdPlug.

tags/v0.9.9
lain 5 years ago
parent
commit
5ce1ebb179
2 changed files with 54 additions and 0 deletions
  1. +15
    -0
      lib/pleroma/plugs/set_user_session_id_plug.ex
  2. +39
    -0
      test/plugs/set_user_session_id_plug_test.exs

+ 15
- 0
lib/pleroma/plugs/set_user_session_id_plug.ex View File

@@ -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

+ 39
- 0
test/plugs/set_user_session_id_plug_test.exs View File

@@ -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…
Cancel
Save