new: display dynamic password rules checklist on registration and profile edit

Each rule (length, lowercase, uppercase, number, special character)
shows a live check/cross icon as the user types.  Also aligns
``handlePasswordChange`` server-side validation with the boilerplate
``Password`` rule (was only enforcing min 8 chars).
This commit is contained in:
Valentin Lab
2026-02-09 09:23:33 +01:00
parent 3d4496b253
commit bf8e948ff3
4 changed files with 85 additions and 2 deletions

View File

@@ -168,8 +168,26 @@ class CustomerController extends Controller
return __('Les mots de passe ne correspondent pas.');
}
if (strlen($request->input('new-password')) < 8) {
return __('Le nouveau mot de passe doit contenir au moins 8 caractères.');
$newPassword = $request->input('new-password');
if (strlen($newPassword) < 8) {
return __('Le mot de passe doit contenir au moins 8 caractères.');
}
if (! preg_match('/[a-z]/', $newPassword)) {
return __('Le mot de passe doit contenir au moins une lettre minuscule.');
}
if (! preg_match('/[A-Z]/', $newPassword)) {
return __('Le mot de passe doit contenir au moins une lettre majuscule.');
}
if (! preg_match('/[0-9]/', $newPassword)) {
return __('Le mot de passe doit contenir au moins un chiffre.');
}
if (! preg_match('/[^A-Za-z0-9]/', $newPassword)) {
return __('Le mot de passe doit contenir au moins un caractère spécial.');
}
$customer->password = Hash::make($request->input('new-password'));