OIDC-only sign-in, Vereinfacht connection test, locale defaults, and settings/docs cleanup #445
3 changed files with 10 additions and 5 deletions
|
|
@ -49,6 +49,9 @@ config :mv, :session_identifier, :unsafe
|
||||||
|
|
||||||
config :mv, :require_token_presence_for_authentication, false
|
config :mv, :require_token_presence_for_authentication, false
|
||||||
|
|
||||||
|
# Use English as default locale in tests so UI tests can assert on English strings.
|
||||||
|
config :mv, :default_locale, "en"
|
||||||
|
|
||||||
# Enable SQL Sandbox for async LiveView tests
|
# Enable SQL Sandbox for async LiveView tests
|
||||||
# This flag controls sync vs async behavior in CycleGenerator after_action hooks
|
# This flag controls sync vs async behavior in CycleGenerator after_action hooks
|
||||||
config :mv, :sql_sandbox, true
|
config :mv, :sql_sandbox, true
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,8 @@ defmodule MvWeb.LiveUserAuth do
|
||||||
end
|
end
|
||||||
|
|
||||||
def on_mount(:live_no_user, _params, session, socket) do
|
def on_mount(:live_no_user, _params, session, socket) do
|
||||||
# Set the locale for not logged in user to set the language in the Log-In Screen
|
# Set the locale for not logged in user (default from config, "de" in dev/prod).
|
||||||
# otherwise the locale is not taken for the Log-In Screen
|
locale = session["locale"] || Application.get_env(:mv, :default_locale, "de")
|
||||||
locale = session["locale"] || "en"
|
|
||||||
Gettext.put_locale(MvWeb.Gettext, locale)
|
Gettext.put_locale(MvWeb.Gettext, locale)
|
||||||
{:cont, assign(socket, :locale, locale)}
|
{:cont, assign(socket, :locale, locale)}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
defmodule MvWeb.LocaleController do
|
defmodule MvWeb.LocaleController do
|
||||||
use MvWeb, :controller
|
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
|
conn
|
||||||
|> put_session(:locale, locale)
|
|> put_session(:locale, locale)
|
||||||
# Store locale in a cookie that persists beyond the session
|
|
||||||
|> put_resp_cookie("locale", locale,
|
|> put_resp_cookie("locale", locale,
|
||||||
max_age: 365 * 24 * 60 * 60,
|
max_age: 365 * 24 * 60 * 60,
|
||||||
same_site: "Lax",
|
same_site: "Lax",
|
||||||
|
|
@ -14,6 +15,8 @@ defmodule MvWeb.LocaleController do
|
||||||
|> redirect(to: get_referer(conn) || "/")
|
|> redirect(to: get_referer(conn) || "/")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_locale(conn, _params), do: redirect(conn, to: get_referer(conn) || "/")
|
||||||
|
|
||||||
defp get_referer(conn) do
|
defp get_referer(conn) do
|
||||||
conn.req_headers
|
conn.req_headers
|
||||||
|> Enum.find(fn {k, _v} -> k == "referer" end)
|
|> Enum.find(fn {k, _v} -> k == "referer" end)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue