++ 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

@@ -58,13 +58,36 @@ class User extends Authenticatable implements MustVerifyEmail
});
}
/**
* Gli amministratori sono esenti dalla conferma dell'email: scelta
* esplicita, perché l'amministratore deve poter entrare anche quando la
* posta non funziona (è lui che la configura). Vale finché ha il ruolo:
* se lo perde, torna a contare `email_verified_at`.
*/
public function esenteDaConfermaEmail(): bool
{
return $this->hasRole('amministratore');
}
/**
* Usato dal middleware `verified`: un esente è sempre "confermato".
*/
public function hasVerifiedEmail(): bool
{
return $this->esenteDaConfermaEmail() || ! is_null($this->email_verified_at);
}
/**
* Manda l'email di conferma; false se il server di posta non risponde o
* rifiuta. Chi chiama decide cosa dire: l'utente è comunque salvato, e
* l'email si può richiedere di nuovo.
* l'email si può richiedere di nuovo. Agli esenti non si manda nulla.
*/
public function inviaConfermaEmail(): bool
{
if ($this->esenteDaConfermaEmail()) {
return true;
}
try {
$this->sendEmailVerificationNotification();
} catch (\Throwable $e) {