defmodule GuildhallWeb.Plugs.Auth do @moduledoc false import Plug.Conn import Phoenix.Controller def init(opts), do: opts def call(conn, _opts) do case get_session(conn, :current_user) do nil -> conn |> put_flash(:error, "Please sign in to continue.") |> redirect(to: "/auth/login") |> halt() user -> assign(conn, :current_user, user) end end def fetch_current_user(conn, _opts) do assign(conn, :current_user, get_session(conn, :current_user)) end end