From f3d2a9592e255698be0c9f21588903e1eeb9e620 Mon Sep 17 00:00:00 2001 From: boban Date: Fri, 26 Jun 2026 06:29:33 +0200 Subject: [PATCH] =?UTF-8?q?feat(auth):=20drop=20password=20complexity=20?= =?UTF-8?q?=E2=80=94=20minimum=20is=20now=20just=206=20characters?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operator decision: password strength is the user's own responsibility. Removed the mixedCase + numbers requirement from every password rule (Password::min(6) is all that remains), so a plain 6-char password ("abcdef") is accepted. Dropped the "upper/lowercase + a digit" clause from the hints (de + en). Verified: a 6-char simple password validates; a 5-char one still rejects (length); full suite 467 pass. Co-Authored-By: Claude Opus 4.8 --- app/Livewire/Auth/ForgotPassword.php | 2 +- app/Livewire/Auth/PasswordChange.php | 2 +- app/Livewire/Auth/ResetPassword.php | 2 +- app/Livewire/Modals/CreateUser.php | 2 +- app/Livewire/Settings/Profile.php | 2 +- lang/de/accounts.php | 2 +- lang/de/auth.php | 2 +- lang/en/accounts.php | 2 +- lang/en/auth.php | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/Livewire/Auth/ForgotPassword.php b/app/Livewire/Auth/ForgotPassword.php index 4670096..c630580 100644 --- a/app/Livewire/Auth/ForgotPassword.php +++ b/app/Livewire/Auth/ForgotPassword.php @@ -69,7 +69,7 @@ class ForgotPassword extends Component $this->validate([ 'email' => ['required', 'email'], 'code' => ['required', 'string'], - 'password' => ['required', 'confirmed', Password::min(6)->mixedCase()->numbers()], + 'password' => ['required', 'confirmed', Password::min(6)], ]); // Tight per-(email+IP) bucket PLUS an IP-independent per-account backstop: this reset diff --git a/app/Livewire/Auth/PasswordChange.php b/app/Livewire/Auth/PasswordChange.php index f0f8263..4f2f404 100644 --- a/app/Livewire/Auth/PasswordChange.php +++ b/app/Livewire/Auth/PasswordChange.php @@ -34,7 +34,7 @@ class PasswordChange extends Component try { $this->validate([ 'current' => ['required', 'current_password'], - 'password' => ['required', 'confirmed', Password::min(6)->mixedCase()->numbers()], + 'password' => ['required', 'confirmed', Password::min(6)], ], attributes: [ 'current' => __('auth.attr_current_password'), 'password' => __('auth.attr_new_password'), diff --git a/app/Livewire/Auth/ResetPassword.php b/app/Livewire/Auth/ResetPassword.php index 2d20d2a..ce0e9cb 100644 --- a/app/Livewire/Auth/ResetPassword.php +++ b/app/Livewire/Auth/ResetPassword.php @@ -34,7 +34,7 @@ class ResetPassword extends Component { $this->validate([ 'email' => ['required', 'email'], - 'password' => ['required', 'confirmed', PasswordRule::min(6)->mixedCase()->numbers()], + 'password' => ['required', 'confirmed', PasswordRule::min(6)], ]); $status = Password::reset( diff --git a/app/Livewire/Modals/CreateUser.php b/app/Livewire/Modals/CreateUser.php index 9b39aab..0c98ff2 100644 --- a/app/Livewire/Modals/CreateUser.php +++ b/app/Livewire/Modals/CreateUser.php @@ -46,7 +46,7 @@ class CreateUser extends ModalComponent 'name' => ['required', 'string', 'max:120'], 'email' => ['required', 'string', 'email', 'max:255', Rule::unique('users', 'email')], // Optional — when set it must meet the same strength as a self-chosen password. - 'password' => ['nullable', 'string', Password::min(6)->mixedCase()->numbers()], + 'password' => ['nullable', 'string', Password::min(6)], ]; } diff --git a/app/Livewire/Settings/Profile.php b/app/Livewire/Settings/Profile.php index db3c636..66104a5 100644 --- a/app/Livewire/Settings/Profile.php +++ b/app/Livewire/Settings/Profile.php @@ -54,7 +54,7 @@ class Profile extends Component try { $this->validate([ 'current_password' => ['required', 'current_password'], - 'password' => ['required', 'confirmed', Password::min(6)->mixedCase()->numbers()], + 'password' => ['required', 'confirmed', Password::min(6)], ]); } catch (ValidationException $e) { if (array_key_exists('current_password', $e->errors())) { diff --git a/lang/de/accounts.php b/lang/de/accounts.php index b4e4517..917718c 100644 --- a/lang/de/accounts.php +++ b/lang/de/accounts.php @@ -23,7 +23,7 @@ return [ 'email_placeholder' => 'erika@example.com', 'password_label' => 'Passwort', 'password_placeholder' => 'Leer = Einmal-Passwort erzeugen', - 'password_hint' => 'Optional. Min. 6 Zeichen, Groß-/Kleinschreibung + Zahl. Leer lassen, um ein sicheres Einmal-Passwort zu erzeugen.', + 'password_hint' => 'Optional. Min. 6 Zeichen. Leer lassen, um ein sicheres Einmal-Passwort zu erzeugen.', 'created_notify' => 'Konto :name angelegt.', 'create_submit' => 'Konto anlegen', diff --git a/lang/de/auth.php b/lang/de/auth.php index 0de689d..050f112 100644 --- a/lang/de/auth.php +++ b/lang/de/auth.php @@ -20,7 +20,7 @@ return [ // ── Password change ────────────────────────────────────────────────── 'security' => 'Sicherheit', 'password_change_heading' => 'Passwort ändern', - 'password_change_subtitle' => 'Lege ein eigenes Passwort fest (min. 6 Zeichen, Groß-/Kleinschreibung + Zahl).', + 'password_change_subtitle' => 'Lege ein eigenes Passwort fest (min. 6 Zeichen).', 'current_password' => 'Aktuelles Passwort', 'new_password' => 'Neues Passwort', 'confirm_new_password' => 'Neues Passwort bestätigen', diff --git a/lang/en/accounts.php b/lang/en/accounts.php index af2c3d5..e357007 100644 --- a/lang/en/accounts.php +++ b/lang/en/accounts.php @@ -23,7 +23,7 @@ return [ 'email_placeholder' => 'jane@example.com', 'password_label' => 'Password', 'password_placeholder' => 'Blank = generate a one-time password', - 'password_hint' => 'Optional. Min. 6 characters, upper/lowercase + a digit. Leave blank to generate a secure one-time password.', + 'password_hint' => 'Optional. Min. 6 characters. Leave blank to generate a secure one-time password.', 'created_notify' => 'Account :name created.', 'create_submit' => 'Create account', diff --git a/lang/en/auth.php b/lang/en/auth.php index e71ed2d..8722cdb 100644 --- a/lang/en/auth.php +++ b/lang/en/auth.php @@ -20,7 +20,7 @@ return [ // ── Password change ────────────────────────────────────────────────── 'security' => 'Security', 'password_change_heading' => 'Change password', - 'password_change_subtitle' => 'Set your own password (min. 6 characters, upper/lowercase + a digit).', + 'password_change_subtitle' => 'Set your own password (min. 6 characters).', 'current_password' => 'Current password', 'new_password' => 'New password', 'confirm_new_password' => 'Confirm new password',