Current section
Files
Jump to
Current section
Files
lib/wizardry.ex
defmodule Wizardry do
import Plug.Conn
alias Wizardry.Config
def init(options) do
options
end
def call(conn, options) do
authenticate? = Keyword.get(options, :authenticate, false)
fetch_session(conn)
|> assign_param(Config.session_key)
|> authenticate(Config.session_key, authenticate?)
end
def assign_param(conn, param) do
case get_session(conn, param) do
nil -> conn
value -> assign(conn, param, value)
end
end
def authenticate(conn, _, false), do: conn
def authenticate(conn, param, true) do
if get_session(conn, param), do: conn, else: halt(conn)
end
end