++ amministratori esenti dalla conferma email

Chi ha il ruolo amministratore non deve confermare l'indirizzo
(User::esenteDaConfermaEmail): non riceve l'email di conferma né alla
creazione né al cambio d'indirizzo, in Utenti compare "esente". Se perde
il ruolo torna a valere email_verified_at.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Francesco Picone
2026-10-19 12:19:29 +02:00
parent 2f42cf937c
commit ac787039c3
6 changed files with 91 additions and 9 deletions

View File

@@ -86,8 +86,11 @@ class UsersIndex extends Component
$this->selectedRole = $this->availableRoles[0];
}
// L'account funziona solo dopo la conferma dell'indirizzo.
if ($user->inviaConfermaEmail()) {
// L'account funziona solo dopo la conferma dell'indirizzo, tranne
// per gli amministratori (User::esenteDaConfermaEmail).
if ($user->esenteDaConfermaEmail()) {
$this->avvisa('Utente creato. Gli amministratori non devono confermare l\'email: l\'account funziona subito.');
} elseif ($user->inviaConfermaEmail()) {
$this->avvisa("Utente creato. Gli è stata inviata un'email a {$user->email}: l'account funziona dopo che conferma l'indirizzo.");
} else {
$this->avvisaErrore("Utente creato, ma l'email di conferma non è partita: controlla il server di posta e usa \"Reinvia conferma\".");
@@ -171,13 +174,14 @@ class UsersIndex extends Component
$emailCambiata = $user->isDirty('email');
$user->save();
$user->syncRoles([$validated['editSelectedRole']]);
$user->load('roles');
$this->cancelEdit();
// Indirizzo nuovo: torna da confermare (User::booted) e gli si manda
// il link, altrimenti il suo account smetterebbe di funzionare senza
// che sappia perché.
if ($emailCambiata) {
// che sappia perché. Gli amministratori sono esenti.
if ($emailCambiata && ! $user->esenteDaConfermaEmail()) {
$inviata = $user->inviaConfermaEmail();
$inviata
? $this->avvisa("Utente aggiornato. Il nuovo indirizzo va confermato: email inviata a {$user->email}.")