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",
|
2023-02-01 05:13:42 +13:00
|
|
|
"selected_types",
|
|
|
|
"catalogue_call_to_action_dismissed"
|
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 ->
|
2023-01-30 16:21:50 +13:00
|
|
|
Plug.Conn.put_session(conn, cookie, value)
|
2022-03-26 10:17:01 +13:00
|
|
|
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
|