++ Utenti: nuova password temporanea per il sorvegliante di gruppo
Sulla riga del sorvegliante, che prima non aveva azioni: "Nuova password temporanea" (mostrata una volta, da cambiare al primo accesso) e "Apri il gruppo". La logica sta in GruppiServizio::nuovaPasswordTemporanea(), usata anche dalla pagina del gruppo; azzera anche il "ricordami". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,32 @@ class GruppiServizio
|
||||
return [$gruppo, $password];
|
||||
}
|
||||
|
||||
/**
|
||||
* Una password temporanea nuova per il sorvegliante che l'ha persa: da
|
||||
* cambiare al primo accesso ("Password temporanea"). Le sessioni aperte
|
||||
* con quella vecchia si chiudono alla richiesta successiva
|
||||
* (AuthenticateSession: è cambiato l'hash), il "ricordami" si azzera.
|
||||
* Restituisce la password, da mostrare una volta sola.
|
||||
*/
|
||||
public function nuovaPasswordTemporanea(User $utente): string
|
||||
{
|
||||
if (! $utente->proclamatore_id || ! $utente->isSorvegliante()) {
|
||||
throw new InvalidArgumentException("{$utente->name} non è il sorvegliante di un gruppo.");
|
||||
}
|
||||
|
||||
$password = Str::password(12, symbols: false);
|
||||
$utente->forceFill([
|
||||
'password' => $password,
|
||||
'password_change_required' => true,
|
||||
'password_temporanea' => true,
|
||||
'remember_token' => null,
|
||||
])->save();
|
||||
|
||||
activity()->causedBy(auth()->user())->performedOn($utente)->log('password_reimpostata');
|
||||
|
||||
return $password;
|
||||
}
|
||||
|
||||
/**
|
||||
* L'email fittizia del sorvegliante, con cui entra: iniziale del nome e
|
||||
* cognome, minuscoli, senza accenti, spazi né apostrofi, sul dominio
|
||||
|
||||
Reference in New Issue
Block a user