18 lines
475 B
Elixir
18 lines
475 B
Elixir
defmodule CMSWeb.AdminMode do
|
|
@moduledoc false
|
|
use CMSWeb, :live_view
|
|
|
|
def admin_mode(%Plug.Conn{} = conn, _opts) do
|
|
Plug.Conn.assign(conn, :admin?, admin?(conn))
|
|
end
|
|
|
|
def on_mount(:default, _params, session, socket) do
|
|
{:cont, assign(socket, :admin?, admin?(session))}
|
|
end
|
|
|
|
defp admin?(%Plug.Conn{} = conn) do
|
|
Plug.Conn.get_session(conn, :admin?, false) == true
|
|
end
|
|
|
|
defp admin?(%{} = session), do: Map.get(session, :admin?, false) == true
|
|
end
|