Current section

Files

Jump to
ash_admin lib ash_admin session_plug.ex
Raw

lib/ash_admin/session_plug.ex

defmodule AshAdmin.SessionPlug do
@moduledoc false
@behaviour Plug
@cookies_to_replicate [
"tenant",
"actor_resource",
"actor_primary_key",
"actor_action",
"actor_domain",
"actor_authorizing",
"actor_paused"
]
def init(_), do: []
def call(conn, _) do
Enum.reduce(@cookies_to_replicate, conn, fn cookie, conn ->
case conn.req_cookies[cookie] do
value when value in [nil, "", "null"] ->
Plug.Conn.put_session(conn, cookie, nil)
value ->
Plug.Conn.put_session(conn, cookie, value)
end
end)
end
end