From 8aa1d3d0313ee49b60b6801833c0eda281d09520 Mon Sep 17 00:00:00 2001 From: Inext68 Date: Sat, 6 Jun 2026 11:50:22 +0200 Subject: [PATCH] reset password user --- app/Console/Commands/ResetUserPassword.php | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 app/Console/Commands/ResetUserPassword.php diff --git a/app/Console/Commands/ResetUserPassword.php b/app/Console/Commands/ResetUserPassword.php new file mode 100644 index 00000000..b5cd45b0 --- /dev/null +++ b/app/Console/Commands/ResetUserPassword.php @@ -0,0 +1,67 @@ +argument('email'); + if (empty($email)) { + $email = $this->ask('Email dell\'utente'); + } + + $user = User::where('email', $email)->first(); + if ($user === null) { + $this->error("Nessun utente trovato con email: {$email}"); + return self::FAILURE; + } + + $this->line("Utente trovato: {$user->name} ({$user->email})"); + + $password = $this->option('password'); + if (empty($password)) { + $password = $this->secret('Nuova password'); + $confirm = $this->secret('Conferma nuova password'); + + if ($password !== $confirm) { + $this->error('Le password non corrispondono'); + return self::FAILURE; + } + } + + $validator = Validator::make( + ['password' => $password], + ['password' => ['required', 'string', 'min:12']] + ); + + if ($validator->fails()) { + $this->error('Password troppo corta: minimo 12 caratteri'); + return self::FAILURE; + } + + $user->password = Hash::make($password); + $user->save(); + + if ($user->wasChanged('password')) { + $this->info("Password aggiornata con successo per {$user->email}"); + return self::SUCCESS; + } + + $this->error('Errore durante l\'aggiornamento della password'); + return self::FAILURE; + } +}