- Sciolto, il gruppo non resta nello storico: si elimina (via sciolto_at;
la migrazione elimina anche quelli gia' sciolti). I territori solo nel
pacchetto tornano in reparto; quelli gia' dati restano ai membri, e
l'assegnazione conserva il nome del gruppo (assegnazioni.gruppo_nome).
- Creando il gruppo non si chiede l'email: users.username dal nome del
gruppo ("Gruppo Zisa" -> gruppo.zisa), users.email facoltativa. Login con
"Email o nome utente". Nome del gruppo unico.
- Sciolto il gruppo il nome utente si libera (l'utenza disattivata prende
ex.sorvegliante.<id>). XML: nome utente e gruppo_nome.
- Profilo, testata, cambio password e Utenti mostrano il nome utente dove
manca l'email. Informativa privacy, README, HANDOFF e test aggiornati.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
125 lines
10 KiB
PHP
125 lines
10 KiB
PHP
<div>
|
|
{{-- Ogni valore che può cambiare arriva da Privacy::render() (impostazioni,
|
|
configurazione, ruoli, conteggi): qui non si scrivono numeri a mano. --}}
|
|
<div class="max-w-3xl mx-auto">
|
|
<h1 class="text-2xl font-bold text-gray-900 mb-1">Informativa Privacy</h1>
|
|
<p class="text-xs text-gray-500 mb-6">Testo rivisto il {{ $revisione }} · valori aggiornati in tempo reale dalle impostazioni</p>
|
|
|
|
<div class="bg-white rounded-xl shadow-sm border border-gray-200 p-6 md:p-8 space-y-6 text-sm text-gray-700 leading-relaxed">
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Titolare del trattamento</h2>
|
|
<p>Congregazione: <strong>{{ $congregazione }}</strong></p>
|
|
<p>L'applicazione TerManager2 è utilizzata esclusivamente per la gestione interna dei territori di predicazione.</p>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Dati trattati</h2>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li><strong>Proclamatori</strong>: solo nome e cognome, cifrati nel database ({{ $cifratura }}), se sono attivi e l'eventuale gruppo di servizio di cui fanno parte. Nessun numero di telefono né indirizzo email.</li>
|
|
<li><strong>Territori e piantine</strong>: numero, zona, tipologia, confini, mappe e PDF — nessun dato personale.</li>
|
|
<li><strong>Assegnazioni</strong>: collegamento tra proclamatore e territorio, con date di assegnazione e rientro, conteggio nelle campagne, codice del link alla piantina, stato del suo invio (inviato o no, e con quale canale) e, se l'ha data il sorvegliante di un gruppo di servizio, il nome del gruppo.</li>
|
|
<li><strong>Utenti dell'applicazione</strong>: nome, email (che va confermata), password conservata solo come impronta non reversibile, ruolo. Il sorvegliante di un gruppo di servizio non ha email: entra con un nome utente ricavato dal nome del gruppo. La sua utenza è collegata al suo proclamatore e viene disattivata quando il gruppo si scioglie; il gruppo, sciolto, viene eliminato.</li>
|
|
<li><strong>Registro delle attività</strong>: chi ha fatto cosa e quando. I proclamatori vi compaiono solo con un identificativo numerico, mai con il nome.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Dati conservati oggi</h2>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li>{{ $conteggi['proclamatori'] }} proclamatori, di cui {{ $conteggi['proclamatoriAttivi'] }} attivi; {{ $conteggi['anonimizzati'] }} nel cestino o anonimizzati.</li>
|
|
<li>{{ $conteggi['assegnazioni'] }} assegnazioni nello storico, di cui {{ $conteggi['assegnazioniAperte'] }} in corso.</li>
|
|
<li>{{ $conteggi['utenti'] }} utenti dell'applicazione.</li>
|
|
<li>{{ $conteggi['attivita'] }} voci nel registro delle attività@if($conteggi['attivitaDal']), dal {{ \Illuminate\Support\Carbon::parse($conteggi['attivitaDal'])->format('d/m/Y') }}@endif.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Finalità del trattamento</h2>
|
|
<p>I dati personali sono trattati esclusivamente per:</p>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li>Organizzare l'assegnazione e il rientro dei territori di predicazione.</li>
|
|
<li>Mandare al proclamatore il link della piantina del territorio assegnato.</li>
|
|
<li>Monitorare la copertura territoriale per anno teocratico.</li>
|
|
<li>Gestire le campagne speciali di predicazione.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Base giuridica</h2>
|
|
<p>Il trattamento è basato sul legittimo interesse dell'organizzazione religiosa nella gestione delle proprie attività interne (Art. 6(1)(f) GDPR) e sull'appartenenza volontaria dei proclamatori alla congregazione (Art. 9(2)(d) GDPR).</p>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Chi accede ai dati</h2>
|
|
<p>L'accesso è riservato agli utenti dell'applicazione, ciascuno secondo il proprio ruolo:</p>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
@foreach($ruoli as $ruolo)
|
|
<li><strong>{{ ucfirst($ruolo['nome']) }}</strong>: {{ $ruolo['permessi'] ? implode('; ', $ruolo['permessi']) : 'nessun permesso' }}.</li>
|
|
@endforeach
|
|
</ul>
|
|
<p class="mt-2">Il proclamatore non ha un account: riceve solo il link alla piantina del territorio che gli è assegnato. Fa eccezione il sorvegliante di un gruppo di servizio, che ha un'utenza (nome utente e password) con cui vede solo il proprio gruppo: i territori del suo pacchetto e i nomi dei membri.</p>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Misure di sicurezza</h2>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li><strong>Cifratura</strong>: nome e cognome dei proclamatori sono cifrati con {{ $cifratura }} prima di essere salvati; la chiave non sta nel database.</li>
|
|
<li><strong>Accesso</strong>: password personale, conferma dell'email, blocco temporaneo dopo troppi tentativi; la sessione scade dopo {{ $durataSessione }} minuti di inattività.</li>
|
|
<li><strong>Permessi</strong>: ogni ruolo vede e modifica solo ciò che gli serve (vedi sopra).</li>
|
|
<li><strong>Registro delle attività</strong>: le operazioni sono registrate e conservate per {{ $auditRetention }} giorni.</li>
|
|
<li><strong>Comunicazioni</strong>: l'applicazione risponde all'indirizzo <code>{{ $indirizzo }}</code>@if($https), su connessione cifrata (HTTPS)@else. <span class="text-red-700 font-medium">Attenzione: l'indirizzo non usa HTTPS, le comunicazioni non sono cifrate.</span>@endif.</li>
|
|
<li><strong>Hosting</strong>: i dati risiedono sul server gestito dagli amministratori dell'applicazione, non su servizi cloud di terze parti.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Link alla piantina</h2>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li>Il link è personale e funziona solo finché il territorio è assegnato, al massimo per {{ $scadenzaLink }} giorni dall'assegnazione.</li>
|
|
<li>Lo manda chi assegna il territorio, copiandolo o con "Condividi" (il menu di condivisione del suo telefono): il destinatario lo sceglie lui tra i propri contatti. L'applicazione non vede quei contatti e non invia nulla ai proclamatori.</li>
|
|
<li>Mostra la piantina del territorio, senza dati personali; il PDF {{ $downloadPdf ? 'si può anche scaricare' : 'si può solo consultare, non scaricare' }}.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Servizi esterni</h2>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li><strong>Condivisione del link</strong>: il messaggio con il nome del proclamatore e il link passa per l'app scelta da chi assegna il territorio (WhatsApp, Telegram, SMS…), dal suo telefono, non dall'applicazione.</li>
|
|
<li><strong>Posta</strong>:
|
|
@if($postaAttiva)
|
|
le email agli utenti dell'applicazione (conferma dell'indirizzo) partono dal server di posta <code>{{ $hostPosta ?? 'configurato' }}</code>. Ai proclamatori non si mandano email.
|
|
@else
|
|
nessun server di posta configurato: l'applicazione non invia email. Ai proclamatori non se ne mandano comunque.
|
|
@endif
|
|
</li>
|
|
<li><strong>Mappe</strong>: le piantine usano le mappe di OpenStreetMap; per disegnarle si scaricano tessere dai server di OpenStreetMap, senza inviare dati personali.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Conservazione dei dati</h2>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li>I dati di un proclamatore possono essere anonimizzati su richiesta: nome e cognome vengono cancellati in modo irreversibile, insieme al nome dell'utenza se è stato sorvegliante di un gruppo.</li>
|
|
<li>Territori e proclamatori eliminati restano nel cestino finché non vengono eliminati definitivamente.</li>
|
|
<li>Il registro delle attività è conservato per <strong>{{ $auditRetention }} giorni</strong> (modificabile nelle impostazioni), poi cancellato automaticamente.</li>
|
|
<li>Lo storico delle assegnazioni è conservato per la durata necessaria alla gestione territoriale.</li>
|
|
<li>I backup e gli export XML scaricati dagli amministratori contengono nome e cognome dei proclamatori <strong>in chiaro</strong>: vanno custoditi in un luogo protetto e cancellati quando non servono più.</li>
|
|
</ul>
|
|
</section>
|
|
|
|
<section>
|
|
<h2 class="text-lg font-semibold text-gray-900 mb-2">Diritti dell'interessato</h2>
|
|
<p>In conformità al GDPR, ogni persona i cui dati sono trattati ha il diritto di:</p>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li><strong>Accesso</strong>: richiedere copia dei propri dati.</li>
|
|
<li><strong>Rettifica</strong>: correggere dati inesatti.</li>
|
|
<li><strong>Cancellazione</strong>: richiedere l'anonimizzazione o la rimozione dei propri dati.</li>
|
|
<li><strong>Portabilità</strong>: richiedere l'esportazione dei propri dati.</li>
|
|
</ul>
|
|
<p class="mt-2">Le richieste vanno rivolte agli amministratori dell'applicazione della congregazione {{ $congregazione }}.</p>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</div>
|