mirror of
https://github.com/ash-project/ash_hq.git
synced 2024-09-20 05:13:23 +12:00
25 lines
597 B
Elixir
25 lines
597 B
Elixir
defmodule AshHqWeb.SessionPlug do
|
|
@moduledoc false
|
|
@behaviour Plug
|
|
|
|
@cookies_to_replicate [
|
|
"theme",
|
|
"selected_versions",
|
|
"selected_types"
|
|
]
|
|
|
|
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)
|
|
|> Plug.Conn.assign(:configured_theme, conn.assigns[:configured_theme] || "dark")
|
|
end
|
|
end
|