Locale: default German in dev/prod, English in test; validate locale in LocaleController
This commit is contained in:
parent
2cab4b0de4
commit
3a98f70ba5
3 changed files with 10 additions and 5 deletions
|
|
@ -1,10 +1,11 @@
|
|||
defmodule MvWeb.LocaleController do
|
||||
use MvWeb, :controller
|
||||
|
||||
def set_locale(conn, %{"locale" => locale}) do
|
||||
@supported_locales ["de", "en"]
|
||||
|
||||
def set_locale(conn, %{"locale" => locale}) when locale in @supported_locales do
|
||||
conn
|
||||
|> put_session(:locale, locale)
|
||||
# Store locale in a cookie that persists beyond the session
|
||||
|> put_resp_cookie("locale", locale,
|
||||
max_age: 365 * 24 * 60 * 60,
|
||||
same_site: "Lax",
|
||||
|
|
@ -14,6 +15,8 @@ defmodule MvWeb.LocaleController do
|
|||
|> redirect(to: get_referer(conn) || "/")
|
||||
end
|
||||
|
||||
def set_locale(conn, _params), do: redirect(conn, to: get_referer(conn) || "/")
|
||||
|
||||
defp get_referer(conn) do
|
||||
conn.req_headers
|
||||
|> Enum.find(fn {k, _v} -> k == "referer" end)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue