Revert "++ amministratori esenti dalla conferma email"
Annullata su richiesta: anche gli amministratori devono confermare l'email. Torna valido il comportamento difc8623f. This reverts commitac78703. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,8 +41,7 @@ class Profile extends Component
|
||||
|
||||
// L'indirizzo nuovo va confermato (User::booted lo segna da
|
||||
// confermare): finché non apre il link, l'account resta bloccato.
|
||||
// Gli amministratori sono esenti (User::esenteDaConfermaEmail).
|
||||
if ($emailCambiata && ! $user->esenteDaConfermaEmail()) {
|
||||
if ($emailCambiata) {
|
||||
$user->inviaConfermaEmail()
|
||||
? session()->flash('success', "Profilo aggiornato. Conferma il nuovo indirizzo: ti abbiamo mandato un'email a {$user->email}.")
|
||||
: session()->flash('error', 'Profilo aggiornato, ma l\'email di conferma non è partita: richiedila qui sotto.');
|
||||
|
||||
@@ -86,11 +86,8 @@ class UsersIndex extends Component
|
||||
$this->selectedRole = $this->availableRoles[0];
|
||||
}
|
||||
|
||||
// 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()) {
|
||||
// L'account funziona solo dopo la conferma dell'indirizzo.
|
||||
if ($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\".");
|
||||
@@ -174,14 +171,13 @@ 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é. Gli amministratori sono esenti.
|
||||
if ($emailCambiata && ! $user->esenteDaConfermaEmail()) {
|
||||
// che sappia perché.
|
||||
if ($emailCambiata) {
|
||||
$inviata = $user->inviaConfermaEmail();
|
||||
$inviata
|
||||
? $this->avvisa("Utente aggiornato. Il nuovo indirizzo va confermato: email inviata a {$user->email}.")
|
||||
|
||||
@@ -58,36 +58,13 @@ 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. Agli esenti non si manda nulla.
|
||||
* l'email si può richiedere di nuovo.
|
||||
*/
|
||||
public function inviaConfermaEmail(): bool
|
||||
{
|
||||
if ($this->esenteDaConfermaEmail()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
try {
|
||||
$this->sendEmailVerificationNotification();
|
||||
} catch (\Throwable $e) {
|
||||
|
||||
Reference in New Issue
Block a user