feat(auth): make password length configurable via env (min 5–30, max 30–128)
CI / check (push) Successful in 29s
CI / tests-imaging-browsers (push) Successful in 1m46s
CI / tests-integration (push) Successful in 1m47s
CI / tests-unit (push) Successful in 1m49s
CI / tests-quality (push) Successful in 44s
CI / tests-ui (push) Successful in 4m38s
CI / preflight (push) Skipped
CI / deploy (push) Successful in 3m38s

Add PASSWORD_MIN_LENGTH / PASSWORD_MAX_LENGTH (validated in src/env.ts) and a
shared passwordPolicy helper. The policy drives the zod schemas in register,
password reset and the admin create-user dialog, plus the live requirement
checks and strength meter in the register form.

Locale messages now interpolate the configured minimum via {min} instead of
hard-coding 12.
This commit is contained in:
openhands committed 2026-10-18 19:20:38 +02:00
1 parent aef0939ee9
commit 9cf1eb615c
36 files changed
+227 -143

No files matched your search

+5 -5
View File
@@ -6132,7 +6132,7 @@
"confirmPassword": "Toista salasana",
"usernamePlaceholder": "Käyttäjätunnus",
"emailPlaceholder": "Sähköposti",
"passwordPlaceholder": "Salasana (vähintään 12 merkkiä)",
"passwordPlaceholder": "Salasana (vähintään {min} merkkiä)",
"confirmPasswordPlaceholder": "Toista salasana",
"selectOutfit": "Valitse asustesi",
"termsAccept": "Olen 18-vuotias ja hyväksyn {hotel} säännöt.",
@@ -6153,7 +6153,7 @@
"termsError": "Sinun on hyväksyttävä säännöt rekisteröityäksesi.",
"usernameError": "Käyttäjätunnus on pakollinen.",
"emailError": "Kelvollinen sähköpostiosoite on pakollinen.",
"passwordError": "Salasanassa on oltava vähintään 12 merkkiä",
"passwordError": "Salasanassa on oltava vähintään {min} merkkiä",
"confirmPasswordError": "Salasanat eivät täsmää.",
"termsRequired": "Sinun on hyväksyttävä säännöt.",
"usernameRequired": "Käyttäjätunnus on pakollinen.",
@@ -6167,7 +6167,7 @@
"strengthFair": "Tyydyttävä",
"strengthGood": "Hyvä",
"strengthStrong": "Vahva",
"passwordMinLength": "Salasanassa on oltava vähintään 12 merkkiä",
"passwordMinLength": "Salasanassa on oltava vähintään {min} merkkiä",
"passwordUpper": "Salasanassa on oltava vähintään yksi iso kirjain",
"passwordLower": "Salasanassa on oltava vähintään yksi pieni kirjain",
"passwordDigit": "Salasanassa on oltava vähintään yksi numero",
@@ -6202,10 +6202,10 @@
"reset": {
"title": "Set a new password",
"subtitle": "Choose a strong password you don't use elsewhere.",
"passwordPlaceholder": "New password (min 12 chars)",
"passwordPlaceholder": "New password (min {min} chars)",
"resetPassword": "Reset password",
"backToLogin": "Back to login",
"passwordMinLength": "Salasanassa on oltava vähintään 12 merkkiä",
"passwordMinLength": "Salasanassa on oltava vähintään {min} merkkiä",
"tooManyAttempts": "Liikaa yrityksiä — yritä myöhemmin uudelleen",
"invalidLink": "Tämä palautuslinkki on virheellinen tai vanhentunut. Pyydä uusi.",
"failed": "Salasanaa ei voitu vaihtaa. Yritä uudelleen."