2022-03-26 10:17:01 +13:00
|
|
|
defmodule AshHqWeb.SessionPlug do
|
|
|
|
@moduledoc false
|
|
|
|
@behaviour Plug
|
|
|
|
|
|
|
|
@cookies_to_replicate [
|
2022-03-28 10:26:35 +13:00
|
|
|
"theme",
|
2022-03-30 17:40:17 +13:00
|
|
|
"selected_versions",
|
2022-12-22 11:40:37 +13:00
|
|
|
"selected_types",
|
|
|
|
"christmas"
|
2022-03-26 10:17:01 +13:00
|
|
|
]
|
|
|
|
|
|
|
|
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)
|
2022-08-06 14:08:23 +12:00
|
|
|
|> Plug.Conn.assign(:configured_theme, conn.assigns[:configured_theme] || "dark")
|
2022-03-26 10:17:01 +13:00
|
|
|
end
|
|
|
|
end
|