Current section
Files
Jump to
Current section
Files
lib/imagine_web/plugs/auth.ex
defmodule ImagineWeb.Plugs.Auth do
@moduledoc """
Auth plug - looks up user based on session[:user_id] and sets conn.assigns[:current_user]
"""
import Plug.Conn
@spec init(any) :: any
def init(opts), do: opts
@spec call(Plug.Conn.t(), any) :: Plug.Conn.t()
def call(conn, _opts) do
user_id = get_session(conn, :user_id)
user = user_id && Imagine.Accounts.get_user(user_id)
if user do
assign(conn, :current_user, user)
else
if System.get_env("MIX_ENV") == "test" do
assign(conn, :current_user, %Imagine.Accounts.User{id: 1, username: "test_user"})
else
conn
end
end
end
end