feat(rgpd): compléter documentation RGPD avec 12 nouvelles sections
Règles RGPD (docs/domains/_shared/rules/rgpd.md): - Ajouter sections 13.11-13.22 (droits utilisateurs, mineurs, sécurité) - Droit de rectification, opposition, limitation du traitement - Gestion des mineurs: 13 ans minimum + consentement parental 13-15 ans - Protection renforcée: RoadWave Kids pour < 13 ans - Sécurité: chiffrement multi-niveaux, procédure breach 72h CNIL - Politique de confidentialité avec versioning - Sous-traitants, DPIA, délais de réponse Entités (6 nouvelles): - PARENTAL_CONSENTS + PARENTAL_CONTROLS (workflow 13-15 ans) - PRIVACY_POLICY_VERSIONS + USER_POLICY_ACCEPTANCES - ACCOUNT_DELETIONS (grace period 30j) - BREACH_INCIDENTS + BREACH_AFFECTED_USERS - USER_PROFILE_HISTORY (audit trail rectification) - DATA_RETENTION_LOGS (purge 5 ans) Diagrammes séquences (5 nouveaux): - Consentement parental avec validation email - Anonymisation GPS automatique après 24h - Notification breach CNIL (procédure 72h) - Export données asynchrone - Suppression compte avec grace period Cycles de vie (3 nouveaux + 1 enrichi): - parental-consent-lifecycle.md - breach-incident-lifecycle.md - account-deletion-lifecycle.md - user-account-lifecycle.md (ajout états mineurs, frozen) Features BDD (4 nouvelles, 195 scénarios RGPD): - minors-protection.feature (9 scénarios) - data-security.feature (12 scénarios) - privacy-policy.feature (8 scénarios) - user-rights.feature (8 scénarios) Infrastructure: - Réorganiser docs générées: docs/bdd + output → generated/bdd + generated/pdf - Mettre à jour mkdocs.yml, Makefile, scripts Python - Ajouter /generated/ au .gitignore
This commit is contained in:
51
docs/domains/_shared/sequences/suppression-compte.md
Normal file
51
docs/domains/_shared/sequences/suppression-compte.md
Normal file
@@ -0,0 +1,51 @@
|
||||
# Suppression compte avec grace period
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant User as Utilisateur
|
||||
participant App as Application
|
||||
participant DB as Base de données
|
||||
participant Email as Service Email
|
||||
participant Cron as Job Cron
|
||||
|
||||
User->>App: Demande suppression compte
|
||||
App->>User: Confirmation (êtes-vous sûr ?)
|
||||
User->>App: Confirmer
|
||||
|
||||
App->>DB: Désactiver compte (statut: pending_deletion)
|
||||
App->>DB: Cacher contenus (visible: false)
|
||||
App->>DB: Révoquer sessions/tokens
|
||||
App->>DB: Enregistrer date suppression effective (J+30)
|
||||
|
||||
App->>Email: Email confirmation + lien annulation
|
||||
Email->>User: Email (lien valide 30j)
|
||||
App->>User: "Compte désactivé. Suppression dans 30 jours."
|
||||
|
||||
Note over User,App: Grace period 30 jours
|
||||
|
||||
alt Utilisateur annule
|
||||
User->>App: Clic lien annulation
|
||||
App->>DB: Réactiver compte (statut: active)
|
||||
App->>DB: Restaurer visibilité contenus
|
||||
App->>Email: Email confirmation réactivation
|
||||
Email->>User: "Compte réactivé"
|
||||
else 30 jours sans annulation
|
||||
Cron->>DB: Job quotidien (vérif comptes pending_deletion)
|
||||
DB->>Cron: Liste comptes J+30 dépassé
|
||||
|
||||
loop Pour chaque compte
|
||||
Cron->>DB: Supprimer données personnelles
|
||||
Cron->>DB: Anonymiser contenus (créateur: "Utilisateur supprimé")
|
||||
Cron->>DB: Supprimer historique GPS/écoute
|
||||
Cron->>DB: Marquer statut: deleted
|
||||
end
|
||||
|
||||
Cron->>Email: Email confirmation suppression effective
|
||||
Email->>User: "Compte définitivement supprimé"
|
||||
end
|
||||
```
|
||||
|
||||
**Légende** :
|
||||
- Grace period : 30 jours
|
||||
- Pendant grace period : compte inaccessible, contenus cachés
|
||||
- Après 30j : suppression définitive, contenus anonymisés conservés
|
||||
Reference in New Issue
Block a user