Front : page de politique de confidentialite (RGPD) (#20) #261

Merged
gabriel merged 4 commits from marvin/20-page-confidentialite into develop 2026-09-10 17:41:22 +00:00
Member

Ferme #20.

Ce que fait la PR

Ajoute la vue /confidentialite : la note d'information de l'article 13 du RGPD (responsable du traitement, donnees collectees, finalites et base legale, destinataires, durees de conservation, cookies de session, droits, reclamation CNIL). Lisible sans session. Atteignable depuis le pied de la page de connexion et depuis le menu du compte.

Le contenu ne fait que decrire ce que le code fait deja (cookies ev_access / ev_refresh, journaux d'authentification ENF-15) ; le texte juridique exact reste a faire valider (note dans le code).

Criteres d'acceptation

  • Page de reglementation
  • RGAA : un seul h1, sections en h2 rattachees a leur region, liens explicites
  • Responsive : largeur de lecture bornee, colonne unique

Verification

npm run test:unit : 505 tests verts (dont ConfidentialiteView.test.js, 6 cas). npm run build passe.
Captures d'ecran a joindre en commentaire de l'issue.

Ferme #20. ## Ce que fait la PR Ajoute la vue `/confidentialite` : la note d'information de l'article 13 du RGPD (responsable du traitement, donnees collectees, finalites et base legale, destinataires, durees de conservation, cookies de session, droits, reclamation CNIL). Lisible sans session. Atteignable depuis le pied de la page de connexion et depuis le menu du compte. Le contenu ne fait que decrire ce que le code fait deja (cookies ev_access / ev_refresh, journaux d'authentification ENF-15) ; le texte juridique exact reste a faire valider (note dans le code). ## Criteres d'acceptation - [x] Page de reglementation - [x] RGAA : un seul h1, sections en h2 rattachees a leur region, liens explicites - [x] Responsive : largeur de lecture bornee, colonne unique ## Verification npm run test:unit : 505 tests verts (dont ConfidentialiteView.test.js, 6 cas). npm run build passe. Captures d'ecran a joindre en commentaire de l'issue.
dashboard: ajoute la page de politique de confidentialité (RGPD)
Some checks failed
Infra Ansible / Playbooks Ansible valides (pull_request) Successful in 2m35s
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 9s
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 51s
Intégration / Workflows — lint et audit de sécurité (pull_request) Successful in 18s
Intégration / Python — qualité, tests et dépendances (pull_request) Failing after 3m37s
15c3c6b334
La note d'information de l'article 13 du RGPD : responsable, données
collectées (compte, journaux d'authentification, cookies de session),
finalités et base légale, destinataires, durées de conservation, cookies,
droits et réclamation CNIL. Lisible sans session, comme la connexion.

Atteignable depuis le pied de la page de connexion et depuis le menu du
compte. Le texte juridique exact reste à faire valider (ticket #20).

Closes #20

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Es6bHF86WXpqXpRKnwqaUh
Author
Member

Note fusion : cette PR et les PR #262 / #263 (pages front #19, #16) touchent toutes src/components/MenuProfil.vue et src/router/index.js. La premiere fusionnee passe telle quelle ; les suivantes demanderont un rebase trivial (ajouts cote a cote, aucun conflit de logique).

Note fusion : cette PR et les PR #262 / #263 (pages front #19, #16) touchent toutes `src/components/MenuProfil.vue` et `src/router/index.js`. La premiere fusionnee passe telle quelle ; les suivantes demanderont un rebase trivial (ajouts cote a cote, aucun conflit de logique).
marvin requested review from justine 2026-09-10 11:21:15 +00:00
marvin self-assigned this 2026-09-10 11:21:18 +00:00
marvin force-pushed marvin/20-page-confidentialite from 15c3c6b334
Some checks failed
Infra Ansible / Playbooks Ansible valides (pull_request) Successful in 2m35s
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 9s
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 51s
Intégration / Workflows — lint et audit de sécurité (pull_request) Successful in 18s
Intégration / Python — qualité, tests et dépendances (pull_request) Failing after 3m37s
to 9c23af10fa
Some checks failed
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 51s
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 7s
Intégration / Terraform — format, validité et lint (pull_request) Successful in 14s
Intégration / Checkov — audit de la configuration (pull_request) Successful in 16s
Intégration / Workflows — lint et audit de sécurité (pull_request) Successful in 20s
Intégration / Python — qualité, tests et dépendances (pull_request) Failing after 4m2s
2026-09-10 12:05:05 +00:00
Compare
Member

@marvin

Bon travail mais 2 remarques :

  1. La durée de conservation annoncée est fausse. La page dit « Journaux d'authentification : douze mois glissants ». Le code purge à 90 jours (AUDIT_RETENTION_DAYS = 90, docs/api/configuration.md:24, docs/api/securite.md:10) et les sessions expirées à 7 jours (SESSION_RETENTION_DAYS). Aucune purge à douze mois nulle part. Sur une note d'information RGPD, annoncer une durée qu'on ne pratique pas est une inexactitude substantielle. Soit la page dit 90 jours, soit la configuration change — mais les deux doivent dire la même chose.

  2. /contact n'existe pas. Les deux (ConfidentialiteView.vue:47 et :152) pointent vers une route absente du routeur, sans route attrape-tout : warning vue-router au rendu, page vide au clic. C'est le canal d'exercice des droits, mention obligatoire de l'article 13. Le test le masque, car routeurDeTest() déclare /contact : il valide un routeur qui n'est pas celui de l'application. (ConnexionView.vue:138 a déjà un a href="/contact"> mort — précédent, pas justification.) Au choix : créer la page, ou basculer sur un mailto: en attendant, ce qui satisfait aussi l'article 13.

Points mineurs (non bloquants) : ENF-15 porte sur les comptes nominatifs et l'empreinte de clé côté infra, pas sur le journal d'auth applicatif — citer plutôt docs/api/securite.md ; Secure est retiré si COOKIE_SECURE=false ; le commentaire au-dessus de MISE_A_JOUR ne décrit pas la constante ; le lien CNIL en target="_blank" gagnerait un avertissement d'ouverture de nouvelle fenêtre.

-> Faudra aussi enlever les conflits pour le merge develop :
This pull request has changes conflicting with the target branch.

services/dashboard/src/components/MenuProfil.vue
services/dashboard/src/router/index.js
services/dashboard/src/views/ConnexionView.vue
services/dashboard/tests/unit/ConnexionView.test.js
services/dashboard/tests/unit/MenuProfil.test.js
@marvin Bon travail mais 2 remarques : 1. La durée de conservation annoncée est fausse. La page dit « Journaux d'authentification : douze mois glissants ». Le code purge à 90 jours (AUDIT_RETENTION_DAYS = 90, docs/api/configuration.md:24, docs/api/securite.md:10) et les sessions expirées à 7 jours (SESSION_RETENTION_DAYS). Aucune purge à douze mois nulle part. Sur une note d'information RGPD, annoncer une durée qu'on ne pratique pas est une inexactitude substantielle. Soit la page dit 90 jours, soit la configuration change — mais les deux doivent dire la même chose. 2. /contact n'existe pas. Les deux <RouterLink to="/contact"> (ConfidentialiteView.vue:47 et :152) pointent vers une route absente du routeur, sans route attrape-tout : warning vue-router au rendu, page vide au clic. C'est le canal d'exercice des droits, mention obligatoire de l'article 13. Le test le masque, car routeurDeTest() déclare /contact : il valide un routeur qui n'est pas celui de l'application. (ConnexionView.vue:138 a déjà un a href="/contact"> mort — précédent, pas justification.) Au choix : créer la page, ou basculer sur un mailto: en attendant, ce qui satisfait aussi l'article 13. Points mineurs (non bloquants) : ENF-15 porte sur les comptes nominatifs et l'empreinte de clé côté infra, pas sur le journal d'auth applicatif — citer plutôt docs/api/securite.md ; Secure est retiré si COOKIE_SECURE=false ; le commentaire au-dessus de MISE_A_JOUR ne décrit pas la constante ; le lien CNIL en target="_blank" gagnerait un avertissement d'ouverture de nouvelle fenêtre. -> Faudra aussi enlever les conflits pour le merge develop : This pull request has changes conflicting with the target branch. services/dashboard/src/components/MenuProfil.vue services/dashboard/src/router/index.js services/dashboard/src/views/ConnexionView.vue services/dashboard/tests/unit/ConnexionView.test.js services/dashboard/tests/unit/MenuProfil.test.js
# Conflicts:
#	services/dashboard/src/components/MenuProfil.vue
#	services/dashboard/src/router/index.js
#	services/dashboard/src/views/ConnexionView.vue
#	services/dashboard/tests/unit/ConnexionView.test.js
#	services/dashboard/tests/unit/MenuProfil.test.js
dashboard : la note RGPD annonce la durée de conservation réellement pratiquée
Some checks failed
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 12s
Intégration / Terraform — format, validité et lint (pull_request) Successful in 18s
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 46s
Intégration / Checkov — audit de la configuration (pull_request) Successful in 15s
Intégration / Workflows — lint et audit de sécurité (pull_request) Successful in 20s
Intégration / Python — qualité, tests et dépendances (pull_request) Failing after 3m59s
d5ef14ea6c
Le texte disait « douze mois glissants » pour les journaux d'authentification,
alors que l'API purge à 90 jours (AUDIT_RETENTION_DAYS, docs/api/securite.md
et docs/api/configuration.md). Sur une note d'information article 13, annoncer
une durée qu'on ne pratique pas est une inexactitude substantielle : la page
dit désormais quatre-vingt-dix jours, et une ligne « Sessions » distincte
rappelle la session absolue de trente jours et la purge des sessions expirées
à sept jours (SESSION_RETENTION_DAYS).

Au passage :
- retire la référence à l'ENF-15, qui porte sur les comptes nominatifs et
  l'empreinte de clé côté infra, pas sur le journal d'auth applicatif ;
- l'attribut Secure des cookies est présenté comme conditionné à HTTPS
  (retiré si COOKIE_SECURE=false) ;
- le commentaire au-dessus de MISE_A_JOUR décrit enfin la constante ;
- le lien CNIL en nouvelle fenêtre l'annonce ;
- un test verrouille la durée affichée.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J48AHXWqxjye6NnwbD7F9D
Author
Member

corrigé !

corrigé !
Merge branch 'develop' into marvin/20-page-confidentialite
All checks were successful
Intégration / Contrôles statiques du dépôt (pull_request) Successful in 10s
Intégration / Terraform — format, validité et lint (pull_request) Successful in 17s
Intégration / Tableau de bord — dépendances, tests et construction (pull_request) Successful in 45s
Intégration / Checkov — audit de la configuration (pull_request) Successful in 16s
Intégration / Workflows — lint et audit de sécurité (pull_request) Successful in 18s
Intégration / Python — qualité, tests et dépendances (pull_request) Successful in 5m55s
1066cd1f3e
gabriel approved these changes 2026-09-10 17:39:40 +00:00
gabriel merged commit 19efc196e7 into develop 2026-09-10 17:41:22 +00:00
gabriel deleted branch marvin/20-page-confidentialite 2026-09-10 17:41:22 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
g2/enervision!261
No description provided.