++ gruppi di servizio: utenza dell'ex sorvegliante riattivabile, cestino e anonimizzazione, registro senza nomi
Un ex sorvegliante puo' guidare un gruppo nuovo: si riattiva la sua utenza. Il sorvegliante di un gruppo attivo non si cestina ne' si anonimizza; anonimizzando un ex sorvegliante si anonimizza anche l'utenza. Nel registro delle attivita' nome ed email dell'utenza del sorvegliante diventano "proclamatore #id". La voce "Il mio gruppo" dipende dal ruolo: l'amministratore passa ogni @can. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Livewire\Concerns\Avvisa;
|
||||
use Livewire\Attributes\Url;
|
||||
use Livewire\Component;
|
||||
use Livewire\WithPagination;
|
||||
use App\Models\GruppoServizio;
|
||||
use App\Models\Proclamatore;
|
||||
|
||||
class ProclamatoreIndex extends Component
|
||||
@@ -70,7 +71,12 @@ class ProclamatoreIndex extends Component
|
||||
$this->avvisaErrore("Il proclamatore {$proclamatore->nome_completo} ha assegnazioni aperte. Rientra prima i territori.");
|
||||
return;
|
||||
}
|
||||
if ($this->sorveglianteDiUnGruppo($proclamatore, 'spostarlo nel cestino')) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Nel cestino non resta membro di un gruppo.
|
||||
$proclamatore->update(['gruppo_servizio_id' => null]);
|
||||
$proclamatore->delete();
|
||||
$this->avvisa("Proclamatore {$proclamatore->nome_completo} spostato nel cestino.");
|
||||
}
|
||||
@@ -80,10 +86,27 @@ class ProclamatoreIndex extends Component
|
||||
$this->authorize('settings.manage');
|
||||
|
||||
$proclamatore = Proclamatore::findOrFail($id);
|
||||
if ($this->sorveglianteDiUnGruppo($proclamatore, 'anonimizzarlo')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$proclamatore->anonimizza();
|
||||
$this->avvisa("Dati personali del proclamatore anonimizzati (GDPR).");
|
||||
}
|
||||
|
||||
/** Il sorvegliante di un gruppo attivo si toglie sciogliendo il gruppo, non da qui. */
|
||||
private function sorveglianteDiUnGruppo(Proclamatore $proclamatore, string $azione): bool
|
||||
{
|
||||
$gruppo = GruppoServizio::attivi()->where('sorvegliante_id', $proclamatore->id)->first();
|
||||
if (! $gruppo) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->avvisaErrore("{$proclamatore->nome_completo} è il sorvegliante del gruppo {$gruppo->nome}: per {$azione} va prima sciolto il gruppo (Gruppi di servizio).");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function render()
|
||||
{
|
||||
// withCount rather than letting the view call
|
||||
|
||||
Reference in New Issue
Block a user