Guida Privacy e GDPR
Ultimo aggiornamento: 2026-05-17
Scopo
Questa guida riassume il perimetro privacy/GDPR disponibile nel core Logeon e i punti da configurare prima della messa in produzione.
Cosa include il core
- Consenso legale obbligatorio in registrazione (privacy policy + termini del servizio).
- Versionamento del consenso legale con storico eventi.
- Preferenze newsletter con consenso opzionale e storico variazioni.
- Revoca sessioni attive da area impostazioni utente.
- Cancellazione personaggio con finestra reversibile.
- Richieste privacy utente (esportazione dati / cancellazione account) con tracking stato.
- Export dati utente in JSON da area impostazioni.
- Pagine legali pubbliche:
/privacy-policy/terms-of-service/cookie-policy
- Banner cookie pubblico con scelte granulari.
Configurazione richiesta
Configura APP['legal'] in configs/app.php:
privacy_policy_urlterms_of_service_urlcookie_policy_urlprivacy_policy_versionterms_of_service_versioncookie_policy_versionprivacy_contact_nameprivacy_contact_email
Aggiorna sempre le versioni quando modifichi i testi legali.
Tabelle DB coinvolte
user_legal_consentslegal_consent_logsgdpr_requestscookie_consent_logsuser_mail_preferencesmail_consent_logs
Le prime quattro vengono create dalla patch:
database/patches/patch_gdpr_foundation.sql
Endpoint core privacy
Area utente (/api/settings/*):
POST /privacy/contextPOST /privacy/requests/listPOST /privacy/requests/createPOST /privacy/export
Area pubblica:
POST /api/privacy/cookie/consent
Area admin (/api/admin/*):
POST /gdpr/requests/listPOST /gdpr/requests/update-statusPOST /gdpr/requests/executePOST /gdpr/requests/export-payloadPOST /gdpr/retention/run
Gestione operativa richieste
Da /admin/gdpr-requests lo staff puo:
- Filtrare richieste per stato e tipo.
- Cambiare stato manualmente (workflow interno).
- Eseguire operazioni reali (solo superuser):
export_data: genera e salva snapshot JSON nel campogdpr_requests.payload_json.delete_account: anonimizza account utente, revoca sessioni e pianifica la cancellazione dei personaggi.
- Scaricare il payload export generato (solo superuser).
- La colonna email nella lista richieste admin viene mostrata solo ai superuser.
Protezione importante:
- La procedura di cancellazione GDPR via admin non permette l'anonimizzazione del superuser creatore.
Retention automatica
Il core include una manutenzione retention GDPR con regole conservative:
- pulizia
cookie_consent_logs - pulizia
mail_consent_logs - pulizia
legal_consent_logs - scrub del payload JSON export nelle richieste GDPR storiche
- eliminazione richieste GDPR chiuse oltre soglia retention
Configurazione default in configs/app.php:
APP['legal']['retention']['interval_minutes']APP['legal']['retention']['cookie_consent_log_days']APP['legal']['retention']['mail_consent_log_days']APP['legal']['retention']['legal_consent_log_days']APP['legal']['retention']['gdpr_request_payload_days']APP['legal']['retention']['gdpr_request_closed_days']
Esecuzione:
- Da admin, sezione richieste GDPR, pulsante
Retention GDPR. - Da CLI schedulata:
C:\xampp\php\php.exe scripts/php/gdpr-retention-maintenance.php
Note operative
- La parte testuale legale va sempre validata dal responsabile legale del progetto.
- L'export JSON core e un baseline operativo: puo essere esteso con dati di moduli opzionali.
- I moduli non bundled dovrebbero dichiarare il proprio impatto privacy in
module.jsoncon un bloccoprivacy. - L'audit moduli (
/admin/modules->Audit) segnalaprivacy_missing_declarationeprivacy_incomplete_declaration. - Il banner cookie pubblico supporta tre scelte (accetta tutto, rifiuta opzionali, personalizza) e registra ogni scelta in
cookie_consent_logs. - In area admin, i dati email sensibili legati a richieste GDPR e blacklist sono visibili solo ai superuser.
Guida per i gestori di istanza
Per il passaggio finale di conformita lato singolo PbC (ruoli, testi legali, processi organizzativi e checklist go-live) vedi:
docs/guida-go-live-gdpr-per-istanze.md