Current section

Files

Jump to
beacon_live_admin lib beacon live_admin plug.ex
Raw

lib/beacon/live_admin/plug.ex

defmodule Beacon.LiveAdmin.Plug do
@moduledoc """
Required plug to load Admin pages allow navigation.
Must be added in the pipeline, see the [Installation guide](file:///Users/apb/dev/beacon_live_admin/doc/installation.html#mount-admin-in-the-router) for more details.
"""
@doc false
use Plug.Builder, init_mode: Phoenix.plug_init_mode()
@doc false
def call(conn, opts), do: super(conn, opts)
plug Plug.Static,
at: "__beacon_live_admin_static__/",
from: :beacon_live_admin,
only: ["images"]
plug :fetch_session
plug :page_url
@doc false
def page_url(%{path_info: ["__beacon_live_admin__", "assets" | _]} = conn, _opts), do: conn
def page_url(conn, _opts) do
Plug.Conn.put_session(
conn,
"beacon_live_admin_page_url",
Phoenix.Controller.current_url(conn)
)
end
end