sloanelybutsurely.com/lib/cms_web/controllers/admin_mode.ex

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