feat(frontend): #50 — validation CGU et politique de confidentialité
- Modale de validation avec chargement des PDF distants, PdfViewPinch et barre de progression latérale (repli PdfView sous Windows). - Service documents légaux actifs, correction des URLs média, intégration au formulaire de présentation. - Documentation juridique et réorganisation (archive, index, tickets). Made-with: Cursor
This commit is contained in:
@@ -0,0 +1,698 @@
|
||||
# 📄 Documentation Technique - Gestion Documents Légaux (CGU/Privacy)
|
||||
|
||||
**Version** : 1.0
|
||||
**Date** : 25 Novembre 2025
|
||||
**Auteur** : Équipe PtitsPas
|
||||
**Référence** : RGPD & Conformité juridique
|
||||
|
||||
---
|
||||
|
||||
## 📖 Table des matières
|
||||
|
||||
1. [Vue d'ensemble](#vue-densemble)
|
||||
2. [Architecture](#architecture)
|
||||
3. [Tables BDD](#tables-bdd)
|
||||
4. [Service Documents Légaux](#service-documents-légaux)
|
||||
5. [Workflow Upload & Activation](#workflow-upload--activation)
|
||||
6. [Workflow Acceptation Utilisateur](#workflow-acceptation-utilisateur)
|
||||
7. [APIs](#apis)
|
||||
8. [Interface Admin](#interface-admin)
|
||||
9. [Conformité RGPD](#conformité-rgpd)
|
||||
|
||||
---
|
||||
|
||||
## 🎯 Vue d'ensemble
|
||||
|
||||
### Problématique
|
||||
|
||||
Chaque collectivité déployant P'titsPas on-premise doit pouvoir :
|
||||
1. ✅ **Personnaliser** les CGU et la Politique de confidentialité
|
||||
2. ✅ **Versionner** les documents (traçabilité juridique)
|
||||
3. ✅ **Tracer** qui a accepté quelle version (RGPD)
|
||||
4. ✅ **Prouver** l'acceptation (IP, User-Agent, horodatage)
|
||||
5. ✅ **Empêcher** le retour en arrière (sécurité juridique)
|
||||
|
||||
### Solution
|
||||
|
||||
- **Documents génériques v1** fournis par défaut (rédigés avec juriste)
|
||||
- **Upload de nouvelles versions** par l'admin (PDF uniquement)
|
||||
- **Versioning automatique** (incrémentation sans retour arrière)
|
||||
- **Activation manuelle** (prévisualisation avant mise en prod)
|
||||
- **Traçabilité complète** (hash SHA-256, IP, User-Agent)
|
||||
|
||||
---
|
||||
|
||||
## 🏗️ Architecture
|
||||
|
||||
### Flux de données
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ Workflow Documents │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 1. UPLOAD (Admin) │
|
||||
│ Admin ──▶ API ──▶ File System ──▶ BDD │
|
||||
│ /documents/legaux/ │
|
||||
│ cgu_v4_<timestamp>.pdf │
|
||||
│ │
|
||||
│ 2. ACTIVATION (Admin) │
|
||||
│ Admin ──▶ API ──▶ BDD (actif=true) │
|
||||
│ │
|
||||
│ 3. ACCEPTATION (Utilisateur) │
|
||||
│ User ──▶ Frontend ──▶ API ──▶ BDD │
|
||||
│ (inscription) (trace IP/UA) │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Composants
|
||||
|
||||
1. **Table `documents_legaux`** : Stockage versions + métadonnées
|
||||
2. **Table `acceptations_documents`** : Traçabilité acceptations
|
||||
3. **Service `DocumentsLegauxService`** : Upload, versioning, activation
|
||||
4. **API REST** : CRUD documents
|
||||
5. **Interface Admin** : Upload + activation
|
||||
6. **Interface Inscription** : Affichage + acceptation
|
||||
|
||||
---
|
||||
|
||||
## 📊 Tables BDD
|
||||
|
||||
### Table 1 : `documents_legaux`
|
||||
|
||||
```sql
|
||||
-- Table pour gérer les versions des documents légaux
|
||||
CREATE TABLE documents_legaux (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
type VARCHAR(50) NOT NULL, -- 'cgu' ou 'privacy'
|
||||
version INTEGER NOT NULL, -- Numéro de version (auto-incrémenté)
|
||||
fichier_nom VARCHAR(255) NOT NULL, -- Nom original du fichier
|
||||
fichier_path VARCHAR(500) NOT NULL, -- Chemin de stockage
|
||||
fichier_hash VARCHAR(64) NOT NULL, -- Hash SHA-256 pour intégrité
|
||||
actif BOOLEAN DEFAULT false, -- Version actuellement active
|
||||
televerse_par UUID REFERENCES utilisateurs(id), -- Qui a uploadé
|
||||
televerse_le TIMESTAMPTZ DEFAULT now(), -- Date d'upload
|
||||
active_le TIMESTAMPTZ, -- Date d'activation
|
||||
UNIQUE(type, version) -- Pas de doublon version
|
||||
);
|
||||
|
||||
-- Index pour performance
|
||||
CREATE INDEX idx_documents_legaux_type_actif ON documents_legaux(type, actif);
|
||||
CREATE INDEX idx_documents_legaux_version ON documents_legaux(type, version DESC);
|
||||
```
|
||||
|
||||
**Contraintes** :
|
||||
- ✅ Un seul document `actif=true` par type à la fois
|
||||
- ✅ Versioning auto-incrémenté (pas de gaps)
|
||||
- ✅ Hash SHA-256 pour vérifier l'intégrité du fichier
|
||||
|
||||
---
|
||||
|
||||
### Table 2 : `acceptations_documents`
|
||||
|
||||
```sql
|
||||
-- Table de traçabilité des acceptations (RGPD)
|
||||
CREATE TABLE acceptations_documents (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
id_utilisateur UUID REFERENCES utilisateurs(id) ON DELETE CASCADE,
|
||||
id_document UUID REFERENCES documents_legaux(id),
|
||||
type_document VARCHAR(50) NOT NULL, -- 'cgu' ou 'privacy'
|
||||
version_document INTEGER NOT NULL, -- Version acceptée
|
||||
accepte_le TIMESTAMPTZ DEFAULT now(), -- Date d'acceptation
|
||||
ip_address INET, -- IP de l'utilisateur (RGPD)
|
||||
user_agent TEXT -- Navigateur (preuve)
|
||||
);
|
||||
|
||||
CREATE INDEX idx_acceptations_utilisateur ON acceptations_documents(id_utilisateur);
|
||||
CREATE INDEX idx_acceptations_document ON acceptations_documents(id_document);
|
||||
```
|
||||
|
||||
**Données capturées** :
|
||||
- ✅ **Qui** : `id_utilisateur`
|
||||
- ✅ **Quoi** : `type_document`, `version_document`
|
||||
- ✅ **Quand** : `accepte_le`
|
||||
- ✅ **Où** : `ip_address`
|
||||
- ✅ **Comment** : `user_agent`
|
||||
|
||||
---
|
||||
|
||||
### Modification table `utilisateurs`
|
||||
|
||||
```sql
|
||||
-- Ajouter colonnes pour référence rapide (optionnel)
|
||||
ALTER TABLE utilisateurs
|
||||
ADD COLUMN cgu_version_acceptee INTEGER,
|
||||
ADD COLUMN cgu_acceptee_le TIMESTAMPTZ,
|
||||
ADD COLUMN privacy_version_acceptee INTEGER,
|
||||
ADD COLUMN privacy_acceptee_le TIMESTAMPTZ;
|
||||
```
|
||||
|
||||
**Note** : Ces colonnes sont **redondantes** avec `acceptations_documents`, mais permettent un accès rapide sans JOIN.
|
||||
|
||||
---
|
||||
|
||||
### Seed initial
|
||||
|
||||
```sql
|
||||
-- Documents génériques v1 (fournis par défaut)
|
||||
INSERT INTO documents_legaux (type, version, fichier_nom, fichier_path, fichier_hash, actif, televerse_le, active_le) VALUES
|
||||
('cgu', 1, 'cgu_v1_default.pdf', '/documents/legaux/cgu_v1_default.pdf', 'a3f8b2c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2', true, now(), now()),
|
||||
('privacy', 1, 'privacy_v1_default.pdf', '/documents/legaux/privacy_v1_default.pdf', 'b4f9c3d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4', true, now(), now());
|
||||
```
|
||||
|
||||
**Fichiers à fournir** :
|
||||
- `/documents/legaux/cgu_v1_default.pdf` (rédigé avec juriste)
|
||||
- `/documents/legaux/privacy_v1_default.pdf` (conforme RGPD)
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Service Documents Légaux
|
||||
|
||||
### Responsabilités
|
||||
|
||||
1. **Récupérer documents actifs** : `getDocumentsActifs()`
|
||||
2. **Uploader nouvelle version** : `uploadNouvelleVersion(type, file, userId)`
|
||||
3. **Activer une version** : `activerVersion(documentId)`
|
||||
4. **Lister versions** : `listerVersions(type)`
|
||||
5. **Télécharger document** : `telechargerDocument(documentId)`
|
||||
|
||||
### Implémentation (TypeScript)
|
||||
|
||||
```typescript
|
||||
// backend/src/documents-legaux/documents-legaux.service.ts
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { DocumentLegal } from './entities/document-legal.entity';
|
||||
import * as crypto from 'crypto';
|
||||
import * as fs from 'fs/promises';
|
||||
import * as path from 'path';
|
||||
|
||||
@Injectable()
|
||||
export class DocumentsLegauxService {
|
||||
private readonly UPLOAD_DIR = '/app/documents/legaux';
|
||||
|
||||
constructor(
|
||||
@InjectRepository(DocumentLegal)
|
||||
private docRepo: Repository<DocumentLegal>,
|
||||
) {}
|
||||
|
||||
// Récupérer les documents actifs
|
||||
async getDocumentsActifs(): Promise<{ cgu: DocumentLegal; privacy: DocumentLegal }> {
|
||||
const cgu = await this.docRepo.findOne({
|
||||
where: { type: 'cgu', actif: true },
|
||||
});
|
||||
|
||||
const privacy = await this.docRepo.findOne({
|
||||
where: { type: 'privacy', actif: true },
|
||||
});
|
||||
|
||||
if (!cgu || !privacy) {
|
||||
throw new Error('Documents légaux manquants');
|
||||
}
|
||||
|
||||
return { cgu, privacy };
|
||||
}
|
||||
|
||||
// Uploader une nouvelle version
|
||||
async uploadNouvelleVersion(
|
||||
type: 'cgu' | 'privacy',
|
||||
file: Express.Multer.File,
|
||||
userId: string,
|
||||
): Promise<DocumentLegal> {
|
||||
// 1. Calculer la prochaine version
|
||||
const lastDoc = await this.docRepo.findOne({
|
||||
where: { type },
|
||||
order: { version: 'DESC' },
|
||||
});
|
||||
const nouvelleVersion = (lastDoc?.version || 0) + 1;
|
||||
|
||||
// 2. Calculer le hash du fichier
|
||||
const fileBuffer = file.buffer;
|
||||
const hash = crypto.createHash('sha256').update(fileBuffer).digest('hex');
|
||||
|
||||
// 3. Générer le nom de fichier unique
|
||||
const timestamp = Date.now();
|
||||
const fileName = `${type}_v${nouvelleVersion}_${timestamp}.pdf`;
|
||||
const filePath = path.join(this.UPLOAD_DIR, fileName);
|
||||
|
||||
// 4. Sauvegarder le fichier
|
||||
await fs.mkdir(this.UPLOAD_DIR, { recursive: true });
|
||||
await fs.writeFile(filePath, fileBuffer);
|
||||
|
||||
// 5. Créer l'entrée en BDD
|
||||
const document = this.docRepo.create({
|
||||
type,
|
||||
version: nouvelleVersion,
|
||||
fichier_nom: file.originalname,
|
||||
fichier_path: filePath,
|
||||
fichier_hash: hash,
|
||||
actif: false, // Pas actif par défaut
|
||||
televerse_par: userId,
|
||||
televerse_le: new Date(),
|
||||
});
|
||||
|
||||
return await this.docRepo.save(document);
|
||||
}
|
||||
|
||||
// Activer une version
|
||||
async activerVersion(documentId: string): Promise<void> {
|
||||
const document = await this.docRepo.findOne({ where: { id: documentId } });
|
||||
|
||||
if (!document) {
|
||||
throw new Error('Document non trouvé');
|
||||
}
|
||||
|
||||
// Transaction : désactiver l'ancienne version, activer la nouvelle
|
||||
await this.docRepo.manager.transaction(async (manager) => {
|
||||
// Désactiver toutes les versions de ce type
|
||||
await manager.update(
|
||||
DocumentLegal,
|
||||
{ type: document.type, actif: true },
|
||||
{ actif: false },
|
||||
);
|
||||
|
||||
// Activer la nouvelle version
|
||||
await manager.update(
|
||||
DocumentLegal,
|
||||
{ id: documentId },
|
||||
{ actif: true, active_le: new Date() },
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
// Lister toutes les versions (pour l'admin)
|
||||
async listerVersions(type: 'cgu' | 'privacy'): Promise<DocumentLegal[]> {
|
||||
return await this.docRepo.find({
|
||||
where: { type },
|
||||
order: { version: 'DESC' },
|
||||
relations: ['televerse_par'],
|
||||
});
|
||||
}
|
||||
|
||||
// Télécharger un document (stream)
|
||||
async telechargerDocument(documentId: string): Promise<{ stream: Buffer; filename: string }> {
|
||||
const document = await this.docRepo.findOne({ where: { id: documentId } });
|
||||
|
||||
if (!document) {
|
||||
throw new Error('Document non trouvé');
|
||||
}
|
||||
|
||||
const fileBuffer = await fs.readFile(document.fichier_path);
|
||||
|
||||
return {
|
||||
stream: fileBuffer,
|
||||
filename: document.fichier_nom,
|
||||
};
|
||||
}
|
||||
|
||||
// Vérifier l'intégrité d'un document
|
||||
async verifierIntegrite(documentId: string): Promise<boolean> {
|
||||
const document = await this.docRepo.findOne({ where: { id: documentId } });
|
||||
|
||||
if (!document) {
|
||||
throw new Error('Document non trouvé');
|
||||
}
|
||||
|
||||
const fileBuffer = await fs.readFile(document.fichier_path);
|
||||
const hash = crypto.createHash('sha256').update(fileBuffer).digest('hex');
|
||||
|
||||
return hash === document.fichier_hash;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Workflow Upload & Activation
|
||||
|
||||
### Diagramme de séquence
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant A as Admin
|
||||
participant API as Backend API
|
||||
participant FS as File System
|
||||
participant DB as PostgreSQL
|
||||
|
||||
A->>API: POST /api/v1/documents-legaux<br/>{type: 'cgu', file: PDF}
|
||||
|
||||
API->>API: Validation fichier<br/>(PDF, max 10MB)
|
||||
API->>API: Calcul hash SHA-256
|
||||
|
||||
API->>DB: SELECT MAX(version)<br/>WHERE type='cgu'
|
||||
DB-->>API: version = 3
|
||||
|
||||
API->>API: Nouvelle version = 4
|
||||
|
||||
API->>FS: Enregistrer fichier<br/>/documents/legaux/cgu_v4_<timestamp>.pdf
|
||||
FS-->>API: ✅ Fichier sauvegardé
|
||||
|
||||
API->>DB: INSERT INTO documents_legaux<br/>(type, version=4, actif=false)
|
||||
DB-->>API: ✅ Document créé
|
||||
|
||||
API-->>A: 201 Created<br/>{id, version: 4, actif: false}
|
||||
|
||||
A->>A: Prévisualisation PDF
|
||||
A->>API: PATCH /api/v1/documents-legaux/{id}/activer
|
||||
|
||||
API->>DB: BEGIN TRANSACTION
|
||||
API->>DB: UPDATE documents_legaux<br/>SET actif=false WHERE type='cgu'
|
||||
API->>DB: UPDATE documents_legaux<br/>SET actif=true, active_le=now()<br/>WHERE id={id}
|
||||
API->>DB: COMMIT
|
||||
|
||||
API-->>A: ✅ CGU v4 activées
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📥 Workflow Acceptation Utilisateur
|
||||
|
||||
### Diagramme de séquence
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as Utilisateur
|
||||
participant App as Frontend
|
||||
participant API as Backend
|
||||
participant DB as PostgreSQL
|
||||
|
||||
U->>App: Inscription (étape CGU)
|
||||
|
||||
App->>API: GET /api/v1/documents-legaux/actifs
|
||||
API->>DB: SELECT * FROM documents_legaux<br/>WHERE actif=true
|
||||
DB-->>API: {cgu: v4, privacy: v2}
|
||||
API-->>App: {cgu: {version: 4, url: '...'}, privacy: {...}}
|
||||
|
||||
App->>App: Afficher liens PDF<br/>"CGU v4" et "Privacy v2"
|
||||
|
||||
U->>U: Lit les documents
|
||||
U->>U: Coche "J'accepte"
|
||||
|
||||
App->>API: POST /api/v1/auth/register<br/>{..., cgu_version: 4, privacy_version: 2, ip, user_agent}
|
||||
|
||||
API->>DB: BEGIN TRANSACTION
|
||||
|
||||
API->>DB: INSERT INTO utilisateurs<br/>(..., cgu_version_acceptee=4, privacy_version_acceptee=2)
|
||||
DB-->>API: id_utilisateur
|
||||
|
||||
API->>DB: INSERT INTO acceptations_documents<br/>(id_utilisateur, type='cgu', version=4, ip, user_agent)
|
||||
API->>DB: INSERT INTO acceptations_documents<br/>(id_utilisateur, type='privacy', version=2, ip, user_agent)
|
||||
|
||||
API->>DB: COMMIT
|
||||
|
||||
API-->>App: ✅ Inscription réussie
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔌 APIs
|
||||
|
||||
### API 1 : Récupérer documents actifs (Public)
|
||||
|
||||
```http
|
||||
GET /api/v1/documents-legaux/actifs
|
||||
```
|
||||
|
||||
**Réponse 200** :
|
||||
```json
|
||||
{
|
||||
"cgu": {
|
||||
"id": "uuid-cgu-v4",
|
||||
"type": "cgu",
|
||||
"version": 4,
|
||||
"url": "/api/v1/documents-legaux/uuid-cgu-v4/download",
|
||||
"active_le": "2025-11-20T14:30:00Z"
|
||||
},
|
||||
"privacy": {
|
||||
"id": "uuid-privacy-v2",
|
||||
"type": "privacy",
|
||||
"version": 2,
|
||||
"url": "/api/v1/documents-legaux/uuid-privacy-v2/download",
|
||||
"active_le": "2025-10-15T09:15:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### API 2 : Lister versions (Admin)
|
||||
|
||||
```http
|
||||
GET /api/v1/documents-legaux/:type/versions
|
||||
Authorization: Bearer <super_admin_token>
|
||||
```
|
||||
|
||||
**Paramètres** :
|
||||
- `type` : `cgu` | `privacy`
|
||||
|
||||
**Réponse 200** :
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "uuid-cgu-v4",
|
||||
"version": 4,
|
||||
"fichier_nom": "CGU_Mairie_Bezons_2025.pdf",
|
||||
"actif": true,
|
||||
"televerse_par": {
|
||||
"id": "uuid-admin",
|
||||
"prenom": "Lucas",
|
||||
"nom": "MOREAU"
|
||||
},
|
||||
"televerse_le": "2025-11-20T14:00:00Z",
|
||||
"active_le": "2025-11-20T14:30:00Z"
|
||||
},
|
||||
{
|
||||
"id": "uuid-cgu-v3",
|
||||
"version": 3,
|
||||
"fichier_nom": "CGU_v3.pdf",
|
||||
"actif": false,
|
||||
"televerse_par": {
|
||||
"id": "uuid-admin",
|
||||
"prenom": "Admin",
|
||||
"nom": "Système"
|
||||
},
|
||||
"televerse_le": "2025-10-15T09:00:00Z",
|
||||
"active_le": "2025-10-15T09:15:00Z"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### API 3 : Upload nouvelle version (Admin)
|
||||
|
||||
```http
|
||||
POST /api/v1/documents-legaux
|
||||
Authorization: Bearer <super_admin_token>
|
||||
Content-Type: multipart/form-data
|
||||
```
|
||||
|
||||
**Body** :
|
||||
```
|
||||
type: cgu
|
||||
file: <fichier PDF>
|
||||
```
|
||||
|
||||
**Réponse 201** :
|
||||
```json
|
||||
{
|
||||
"id": "uuid-nouveau-doc",
|
||||
"type": "cgu",
|
||||
"version": 5,
|
||||
"fichier_nom": "CGU_Mairie_Bezons_2025_v2.pdf",
|
||||
"actif": false,
|
||||
"televerse_le": "2025-11-25T10:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
**Erreurs** :
|
||||
- `400 Bad Request` : Fichier non PDF ou trop volumineux (>10MB)
|
||||
- `401 Unauthorized` : Token manquant ou invalide
|
||||
- `403 Forbidden` : Rôle insuffisant (pas super_admin)
|
||||
|
||||
---
|
||||
|
||||
### API 4 : Activer une version (Admin)
|
||||
|
||||
```http
|
||||
PATCH /api/v1/documents-legaux/:id/activer
|
||||
Authorization: Bearer <super_admin_token>
|
||||
```
|
||||
|
||||
**Réponse 200** :
|
||||
```json
|
||||
{
|
||||
"message": "Document activé avec succès",
|
||||
"documentId": "uuid-nouveau-doc",
|
||||
"type": "cgu",
|
||||
"version": 5
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### API 5 : Télécharger document (Public)
|
||||
|
||||
```http
|
||||
GET /api/v1/documents-legaux/:id/download
|
||||
```
|
||||
|
||||
**Réponse 200** :
|
||||
```
|
||||
Content-Type: application/pdf
|
||||
Content-Disposition: attachment; filename="CGU_v5.pdf"
|
||||
|
||||
<binary PDF data>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### API 6 : Historique acceptations utilisateur (Admin)
|
||||
|
||||
```http
|
||||
GET /api/v1/users/:userId/acceptations
|
||||
Authorization: Bearer <super_admin_token>
|
||||
```
|
||||
|
||||
**Réponse 200** :
|
||||
```json
|
||||
[
|
||||
{
|
||||
"type_document": "cgu",
|
||||
"version_document": 4,
|
||||
"accepte_le": "2025-11-20T15:30:00Z",
|
||||
"ip_address": "192.168.1.100",
|
||||
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
|
||||
},
|
||||
{
|
||||
"type_document": "privacy",
|
||||
"version_document": 2,
|
||||
"accepte_le": "2025-11-20T15:30:00Z",
|
||||
"ip_address": "192.168.1.100",
|
||||
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💻 Interface Admin
|
||||
|
||||
### Écran Gestion Documents Légaux
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────┐
|
||||
│ 📄 Gestion des Documents Légaux │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ [ CGU ] [ Politique de confidentialité ] │
|
||||
├─────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ 📋 Conditions Générales d'Utilisation (CGU) │
|
||||
│ │
|
||||
│ Version active : v4 │
|
||||
│ Activée le : 20/11/2025 14:30 │
|
||||
│ Téléversée par : Lucas MOREAU │
|
||||
│ │
|
||||
│ [ 📥 Télécharger ] [ 👁️ Prévisualiser ] │
|
||||
│ │
|
||||
│ ───────────────────────────────────────────────── │
|
||||
│ │
|
||||
│ 📤 Uploader une nouvelle version │
|
||||
│ │
|
||||
│ ⚠️ Attention : L'upload d'une nouvelle version │
|
||||
│ créera la version v5. Vous pourrez la prévisualiser│
|
||||
│ avant de l'activer. │
|
||||
│ │
|
||||
│ [ Choisir un fichier PDF ] (max 10MB) │
|
||||
│ │
|
||||
│ [ 📤 Uploader ] │
|
||||
│ │
|
||||
│ ───────────────────────────────────────────────── │
|
||||
│ │
|
||||
│ 📜 Historique des versions │
|
||||
│ │
|
||||
│ ┌───────────────────────────────────────────────┐ │
|
||||
│ │ ✅ v4 (Active) │ │
|
||||
│ │ Activée le : 20/11/2025 14:30 │ │
|
||||
│ │ Par : Lucas MOREAU │ │
|
||||
│ │ Hash : a3f8b2c4...e0f1a2 ✓ │ │
|
||||
│ │ [ 📥 Télécharger ] [ 👁️ Voir ] │ │
|
||||
│ └───────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
│ ┌───────────────────────────────────────────────┐ │
|
||||
│ │ v3 (Inactive) │ │
|
||||
│ │ Activée le : 15/10/2025 09:15 │ │
|
||||
│ │ Par : Admin Système │ │
|
||||
│ │ Hash : b4f9c3d6...f2a3b4 ✓ │ │
|
||||
│ │ [ 📥 Télécharger ] [ 👁️ Voir ] [🔄 Réactiver]│ │
|
||||
│ └───────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└─────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔒 Conformité RGPD
|
||||
|
||||
### Données capturées
|
||||
|
||||
| Donnée | Justification RGPD | Durée conservation |
|
||||
|--------|-------------------|-------------------|
|
||||
| `id_utilisateur` | Traçabilité acceptation | Durée du compte |
|
||||
| `version_document` | Preuve version acceptée | Durée du compte |
|
||||
| `accepte_le` | Horodatage légal | Durée du compte |
|
||||
| `ip_address` | Preuve origine acceptation | 1 an (recommandé) |
|
||||
| `user_agent` | Preuve navigateur/appareil | 1 an (recommandé) |
|
||||
|
||||
### Droits utilisateur
|
||||
|
||||
#### Droit d'accès (Article 15)
|
||||
L'utilisateur peut demander :
|
||||
- Quelles versions il a acceptées
|
||||
- Quand il les a acceptées
|
||||
- Depuis quelle IP
|
||||
|
||||
**API** : `GET /api/v1/users/me/acceptations`
|
||||
|
||||
#### Droit à l'oubli (Article 17)
|
||||
Lors de la suppression du compte :
|
||||
- Suppression des données personnelles
|
||||
- Conservation des acceptations anonymisées (obligation légale)
|
||||
|
||||
**Implémentation** :
|
||||
```sql
|
||||
-- Anonymisation (pas suppression totale)
|
||||
UPDATE acceptations_documents
|
||||
SET ip_address = NULL,
|
||||
user_agent = NULL
|
||||
WHERE id_utilisateur = '<uuid>';
|
||||
|
||||
-- Puis suppression utilisateur
|
||||
DELETE FROM utilisateurs WHERE id = '<uuid>';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Références
|
||||
|
||||
### Documentation interne
|
||||
- [01_CAHIER-DES-CHARGES.md](../01_CAHIER-DES-CHARGES.md)
|
||||
- [10_DATABASE.md](../10_DATABASE.md)
|
||||
- [11_API.md](../11_API.md)
|
||||
- [21_CONFIGURATION-SYSTEME.md](../21_CONFIGURATION-SYSTEME.md)
|
||||
|
||||
### Documentation externe
|
||||
- [RGPD - Article 7 (Consentement)](https://www.cnil.fr/fr/reglement-europeen-protection-donnees/chapitre2#Article7)
|
||||
- [RGPD - Article 15 (Droit d'accès)](https://www.cnil.fr/fr/reglement-europeen-protection-donnees/chapitre3#Article15)
|
||||
- [RGPD - Article 17 (Droit à l'oubli)](https://www.cnil.fr/fr/reglement-europeen-protection-donnees/chapitre3#Article17)
|
||||
|
||||
---
|
||||
|
||||
**Dernière mise à jour** : 25 Novembre 2025
|
||||
**Version** : 1.0
|
||||
**Statut** : ✅ Document validé
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
# Juridique · P'titsPas
|
||||
|
||||
Ce dossier regroupe la **documentation juridique** et les **sources Markdown**
|
||||
destinées à être publiées (souvent en **PDF**) dans l’application : notamment
|
||||
l’écran d’**acceptation à l’inscription** (CGU + politique de confidentialité).
|
||||
|
||||
## Documents « application » (à exporter en PDF)
|
||||
|
||||
| Fichier | Rôle |
|
||||
|--------|------|
|
||||
| [**cgu.md**](./cgu.md) | **Conditions générales d’utilisation** du service |
|
||||
| [**politique-confidentialite.md**](./politique-confidentialite.md) | **Politique de confidentialité** (RGPD, droits, finalités) |
|
||||
|
||||
Ces deux fichiers correspondent aux types **`cgu`** et **`privacy`** côté API
|
||||
documents légaux (voir doc technique ci-dessous).
|
||||
|
||||
## Document complémentaire (optionnel)
|
||||
|
||||
| Fichier | Rôle |
|
||||
|--------|------|
|
||||
| [**cgc.md**](./cgc.md) | **Conditions générales contractuelles** (cadre
|
||||
d’engagement des parties) — distinct de la politique de confidentialité |
|
||||
|
||||
## Documentation technique
|
||||
|
||||
| Fichier | Rôle |
|
||||
|--------|------|
|
||||
| [**22_DOCUMENTS-LEGAUX.md**](./22_DOCUMENTS-LEGAUX.md) | API, BDD, versioning,
|
||||
traçabilité des acceptations |
|
||||
|
||||
> Tous les textes ci-dessus sont des **brouillons** à valider par un **juriste**
|
||||
> ou la **DPD/DPO** avant diffusion en production.
|
||||
|
||||
## Export PDF (local)
|
||||
|
||||
1. Ouvrir le `.md` dans Cursor.
|
||||
2. `Ctrl+Shift+P` → **Markdown PDF: Export (pdf)** (extension *Markdown PDF*,
|
||||
auteur yzane).
|
||||
|
||||
Les PDF déployés côté API sont décrits dans
|
||||
[22_DOCUMENTS-LEGAUX.md](./22_DOCUMENTS-LEGAUX.md).
|
||||
@@ -0,0 +1,116 @@
|
||||
# Conditions générales contractuelles (CGC)
|
||||
|
||||
**Produit** : P'titsPas
|
||||
**Version document** : 0.1 (brouillon)
|
||||
**Date** : avril 2026
|
||||
**Statut** : à valider juridiquement avant publication
|
||||
|
||||
> **Ce document n’est pas** la **politique de confidentialité** (données
|
||||
> personnelles / RGPD) : voir
|
||||
> [**politique-confidentialite.md**](./politique-confidentialite.md).
|
||||
|
||||
---
|
||||
|
||||
## 1. Objet
|
||||
|
||||
Les présentes **conditions générales contractuelles** (« CGC ») définissent le
|
||||
**cadre contractuel** entre les **parties** impliquées dans l’usage de la
|
||||
plateforme **P'titsPas** pour la gestion de la garde d’enfants au sein des
|
||||
**collectivités** ou structures habilitées.
|
||||
|
||||
Elles complètent les [**conditions générales d’utilisation**](./cgu.md) (CGU),
|
||||
qui régissent l’usage du **Service numérique** lui-même.
|
||||
|
||||
---
|
||||
|
||||
## 2. Parties
|
||||
|
||||
Selon les cas d’usage du déploiement, peuvent notamment être parties :
|
||||
|
||||
- la **collectivité** ou l’**employeur public** porteur du dispositif ;
|
||||
- l’**Éditeur** ou l’**opérateur** assurant l’hébergement et la maintenance du
|
||||
Service ;
|
||||
- les **Utilisateurs** (parents, assistantes maternelles, relais d’assistantes
|
||||
maternelles, gestionnaires, etc.).
|
||||
|
||||
[À compléter : identification précise des personnes morales signataires et
|
||||
rôles (maîtrise d’ouvrage, maîtrise d’œuvre, délégation).]
|
||||
|
||||
---
|
||||
|
||||
## 3. Objet du contrat
|
||||
|
||||
Le contrat a pour objet de préciser :
|
||||
|
||||
- les **missions** et **responsabilités** de chaque catégorie d’acteur ;
|
||||
- les **conditions d’inscription**, de **validation** des dossiers et de
|
||||
**clôture** des comptes ;
|
||||
- les **obligations** en matière de **sincérité** des informations et de
|
||||
**coopération** avec les services compétents.
|
||||
|
||||
---
|
||||
|
||||
## 4. Obligations des Utilisateurs
|
||||
|
||||
Les Utilisateurs s’engagent à :
|
||||
|
||||
- respecter le **cadre légal** applicable à la garde d’enfants et à la
|
||||
protection de l’enfance ;
|
||||
- ne fournir que des **documents** et **informations** licites et, le cas échéant,
|
||||
conformes aux demandes des gestionnaires ;
|
||||
- respecter la **charte d’usage** et les consignes communiquées par la
|
||||
collectivité ou l’Éditeur.
|
||||
|
||||
---
|
||||
|
||||
## 5. Obligations de la collectivité / de l’Éditeur
|
||||
|
||||
[À compléter : disponibilité cible, support, sauvegardes, sous-traitance,
|
||||
sous-traitants, transferts hors UE, etc.]
|
||||
|
||||
---
|
||||
|
||||
## 6. Durée et résiliation
|
||||
|
||||
Le présent cadre contractuel est conclu pour la **durée** d’utilisation du
|
||||
Service par les Utilisateurs concernés, sous réserve des **résiliations**
|
||||
prévues par la réglementation ou par décision légitime de l’Éditeur / de la
|
||||
collectivité.
|
||||
|
||||
La **résiliation** d’un compte Utilisateur n’implique pas nécessairement la
|
||||
**suppression immédiate** de toutes les données ; les **archives** et délais
|
||||
peuvent être imposés par la loi.
|
||||
|
||||
---
|
||||
|
||||
## 7. Modification
|
||||
|
||||
Les CGC peuvent être **adaptées** (évolution réglementaire, organisation du
|
||||
dispositif). Les Utilisateurs en sont informés par un **moyen approprié** et,
|
||||
lorsque la loi ou la pratique l’exige, une **nouvelle acceptation** est
|
||||
enregistrée.
|
||||
|
||||
---
|
||||
|
||||
## 8. Responsabilité et assurance
|
||||
|
||||
[À compléter : plafonds, exclusions, co-traitance, garanties, assurance
|
||||
responsabilité civile, etc.]
|
||||
|
||||
---
|
||||
|
||||
## 9. Litiges
|
||||
|
||||
[À compléter : médiation, compétence territoriale, droit applicable.]
|
||||
|
||||
---
|
||||
|
||||
## 10. Dispositions finales
|
||||
|
||||
[À compléter : intégralité de l’accord, nullité partielle, langue de référence,
|
||||
date d’effet.]
|
||||
|
||||
---
|
||||
|
||||
*Document généré comme base de travail pour le projet P'titsPas. Il ne
|
||||
constitue pas un conseil juridique.*
|
||||
@@ -0,0 +1,119 @@
|
||||
# Conditions générales d’utilisation (CGU)
|
||||
|
||||
**Produit** : P'titsPas
|
||||
**Version document** : 0.2 (brouillon)
|
||||
**Date** : avril 2026
|
||||
**Statut** : à valider juridiquement avant publication
|
||||
|
||||
---
|
||||
|
||||
## 1. Objet et champ d’application
|
||||
|
||||
Les présentes **conditions générales d’utilisation** (« CGU ») encadrent
|
||||
l’accès et l’usage de la **plateforme logicielle P'titsPas** (ci-après le
|
||||
« **Service** »), dédiée à l’organisation de la **garde d’enfants de 0 à 3 ans**
|
||||
dans le cadre des **collectivités locales** ou structures habilitées.
|
||||
|
||||
Toute **création de compte** ou **utilisation** du Service vaut acceptation des
|
||||
CGU en vigueur au moment de l’utilisation.
|
||||
|
||||
---
|
||||
|
||||
## 2. Définitions
|
||||
|
||||
- **Éditeur** : la personne morale ou la collectivité responsable du
|
||||
déploiement et de l’administration du Service.
|
||||
- **Utilisateur** : toute personne disposant d’un compte (parent, assistante
|
||||
maternelle, relais, gestionnaire, administrateur, etc.).
|
||||
- **Données** : informations saisies ou générées dans le Service.
|
||||
|
||||
---
|
||||
|
||||
## 3. Accès au Service
|
||||
|
||||
Le Service est accessible selon les **modalités techniques** définies par
|
||||
l’Éditeur (URL, authentification, pare-feu, etc.).
|
||||
|
||||
L’Éditeur peut **suspendre** ou **restreindre** l’accès pour maintenance,
|
||||
sécurité ou obligation légale, dans la mesure du possible en informant les
|
||||
Utilisateurs par un moyen adapté.
|
||||
|
||||
---
|
||||
|
||||
## 4. Comptes et sécurité
|
||||
|
||||
Chaque Utilisateur s’engage à :
|
||||
|
||||
- fournir des **informations exactes** et les mettre à jour ;
|
||||
- **garder confidentiels** ses identifiants et mots de passe ;
|
||||
- signaler sans délai toute **utilisation non autorisée** de son compte.
|
||||
|
||||
L’Éditeur peut **désactiver** un compte en cas de manquement grave aux présentes
|
||||
CGU ou à la réglementation applicable.
|
||||
|
||||
---
|
||||
|
||||
## 5. Usage loyal du Service
|
||||
|
||||
Il est notamment interdit d’utiliser le Service pour :
|
||||
|
||||
- porter atteinte aux **droits des tiers** ou à l’**ordre public** ;
|
||||
- tenter d’**accéder** de manière frauduleuse à des données ou des fonctions non
|
||||
autorisées ;
|
||||
- **perturber** le fonctionnement du Service (attaques, surcharge, etc.).
|
||||
|
||||
---
|
||||
|
||||
## 6. Propriété intellectuelle
|
||||
|
||||
Les **éléments** du Service (logiciel, charte graphique, documentation interne
|
||||
non publique, etc.) restent la propriété de leurs titulaires respectifs, sauf
|
||||
mention contraire.
|
||||
|
||||
Les **contenus** saisis par les Utilisateurs (textes, pièces jointes autorisées)
|
||||
restent sous leur responsabilité ; ils concèdent à l’Éditeur les droits
|
||||
**strictement nécessaires** à l’hébergement et au fonctionnement du Service.
|
||||
|
||||
---
|
||||
|
||||
## 7. Données personnelles
|
||||
|
||||
Le traitement des données personnelles est décrit dans la [**politique de
|
||||
confidentialité**](./politique-confidentialite.md) et les documents affichés
|
||||
dans le Service, conformément au **RGPD** et aux obligations locales.
|
||||
|
||||
---
|
||||
|
||||
## 8. Responsabilité
|
||||
|
||||
Le Service est fourni **en l’état**, dans les limites de l’état de l’art et des
|
||||
moyens raisonnables de l’Éditeur.
|
||||
|
||||
L’Éditeur ne saurait être tenu responsable des **dommages indirects** ou des
|
||||
**indisponibilités** indépendantes de sa volonté, dans les limites autorisées par
|
||||
la loi.
|
||||
|
||||
---
|
||||
|
||||
## 9. Évolution des CGU
|
||||
|
||||
Les CGU peuvent être **modifiées**. Les Utilisateurs sont informés selon les
|
||||
moyens prévus (notification, ré-affichage à la connexion, etc.). La **version**
|
||||
acceptée est **tracée** dans le Service lorsque la fonctionnalité est activée.
|
||||
|
||||
---
|
||||
|
||||
## 10. Droit applicable et litiges
|
||||
|
||||
[À compléter : droit applicable, juridiction compétente, médiation éventuelle.]
|
||||
|
||||
---
|
||||
|
||||
## 11. Contact
|
||||
|
||||
[À compléter : coordonnées du DPO ou du service utilisateurs.]
|
||||
|
||||
---
|
||||
|
||||
*Document généré comme base de travail pour le projet P'titsPas. Il ne
|
||||
constitue pas un conseil juridique.*
|
||||
Binary file not shown.
@@ -0,0 +1,188 @@
|
||||
# Politique de confidentialité
|
||||
|
||||
**Produit** : P'titsPas
|
||||
**Version document** : 0.1 (brouillon)
|
||||
**Date** : avril 2026
|
||||
**Statut** : à valider juridiquement avant publication
|
||||
|
||||
Document distinct des [**conditions générales d’utilisation**](./cgu.md)
|
||||
(CGU), qui régissent l’usage du service.
|
||||
|
||||
---
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
La présente **politique de confidentialité** décrit comment sont traitées les
|
||||
**données à caractère personnel** dans le cadre de la plateforme **P'titsPas**,
|
||||
application dédiée à l’organisation de la **garde d’enfants** (notamment 0 à 3
|
||||
ans) pour le compte de **collectivités** ou structures habilitées.
|
||||
|
||||
Elle s’applique aux **Utilisateurs** du Service (parents, assistantes
|
||||
maternelles, relais, gestionnaires, administrateurs, etc.).
|
||||
|
||||
---
|
||||
|
||||
## 2. Responsable du traitement
|
||||
|
||||
[À compléter : identité et coordonnées du **responsable du traitement** — en
|
||||
général la collectivité ou la personne morale désignée selon le mode de
|
||||
déploiement (on-premise, délégation, etc.).]
|
||||
|
||||
Pour toute question relative à cette politique ou à vos droits :
|
||||
|
||||
- **Contact** : [À compléter : courriel / adresse postale du service ou du
|
||||
DPD/DPO.]
|
||||
- **Délégué à la protection des données (DPD/DPO)** : [À compléter si désigné.]
|
||||
|
||||
---
|
||||
|
||||
## 3. Données collectées
|
||||
|
||||
Selon les profils et les fonctionnalités activées, peuvent notamment être
|
||||
traitées :
|
||||
|
||||
- **Données d’identité et de contact** : nom, prénom, adresse électronique,
|
||||
numéro de téléphone, adresse postale, etc.
|
||||
- **Données d’authentification** : identifiant, données de connexion, indicateur
|
||||
de changement de mot de passe obligatoire, etc.
|
||||
- **Données professionnelles** (assistantes maternelles, relais) : agrément,
|
||||
capacité, présentation, pièces ou identifiants professionnels selon le
|
||||
formulaire.
|
||||
- **Données relatives aux enfants** : prénom, date de naissance, lien avec les
|
||||
titulaires de l’autorité parentale, informations de santé ou de garde **uniquement**
|
||||
dans la mesure où leur collecte est **nécessaire** au service et **encadrée**
|
||||
par la collectivité et la loi.
|
||||
- **Données de connexion et de traçabilité** : journaux techniques, adresse IP,
|
||||
agent utilisateur, horodatages, traces d’**acceptation** des documents légaux
|
||||
(CGU, présente politique), etc.
|
||||
- **Contenus** saisis dans le Service (textes libres, messages si la messagerie
|
||||
est activée, etc.).
|
||||
|
||||
[À compléter : liste exhaustive alignée sur les écrans et tables réelles du
|
||||
déploiement.]
|
||||
|
||||
---
|
||||
|
||||
## 4. Finalités et bases légales
|
||||
|
||||
Les traitements poursuivent notamment les finalités suivantes (bases légales
|
||||
indicatives, **à affiner** avec le juriste) :
|
||||
|
||||
| Finalité | Base légale (indicative) |
|
||||
|----------|---------------------------|
|
||||
| Création et gestion des **comptes** | Exécution de mesures précontractuelles /
|
||||
contrat ; obligation légale le cas échéant |
|
||||
| Gestion des **dossiers** de garde et des **inscriptions** | Mission de
|
||||
service public / contrat / obligation légale selon contexte |
|
||||
| **Sécurité** du Service, prévention des abus | Intérêt légitime ; obligation
|
||||
légale |
|
||||
| **Traçabilité** des acceptations de documents (CGU, politique) | Obligation
|
||||
légale ; preuve d’un contrat |
|
||||
| **Amélioration** et statistiques d’usage (si activées) | Intérêt légitime ou
|
||||
consentement selon les moyens |
|
||||
|
||||
---
|
||||
|
||||
## 5. Destinataires des données
|
||||
|
||||
Les données peuvent être accessibles :
|
||||
|
||||
- aux **personnels habilités** de la collectivité ou de l’Éditeur (selon les
|
||||
rôles : gestionnaire, administrateur, etc.) ;
|
||||
- aux **Utilisateurs** dans la limite de ce qui est nécessaire au fonctionnement
|
||||
du dispositif (ex. dossier partagé) ;
|
||||
- aux **sous-traitants** techniques strictement nécessaires (hébergement,
|
||||
sauvegarde, messagerie, etc.) **sous contrat** conforme au RGPD.
|
||||
|
||||
[À compléter : liste des sous-traitants et pays d’hébergement.]
|
||||
|
||||
---
|
||||
|
||||
## 6. Durée de conservation
|
||||
|
||||
Les données sont conservées :
|
||||
|
||||
- pendant la **durée d’utilisation** du compte et du dossier ;
|
||||
- puis, le cas échéant, pour les **durées légales** ou réglementaires de
|
||||
conservation (archives, preuve, comptabilité, etc.).
|
||||
|
||||
[À compléter : grille de conservation par type de donnée.]
|
||||
|
||||
---
|
||||
|
||||
## 7. Vos droits
|
||||
|
||||
Conformément au **RGPD**, vous disposez notamment des droits suivants (dans les
|
||||
conditions et limites prévues par la loi) :
|
||||
|
||||
- **droit d’accès** et de **rectification** ;
|
||||
- **droit à l’effacement** (« droit à l’oubli ») ;
|
||||
- **droit à la limitation** du traitement ;
|
||||
- **droit à la portabilité** (le cas échéant) ;
|
||||
- **droit d’opposition** (notamment pour prospection, selon contexte) ;
|
||||
- **droit de retirer votre consentement** lorsque le traitement repose sur le
|
||||
consentement ;
|
||||
- **droit d’introduire une réclamation** auprès de la **CNIL** (France) :
|
||||
[https://www.cnil.fr](https://www.cnil.fr).
|
||||
|
||||
Pour exercer vos droits : [À compléter : procédure, délais de réponse, pièce
|
||||
d’identité si exigée.]
|
||||
|
||||
---
|
||||
|
||||
## 8. Sécurité
|
||||
|
||||
L’Éditeur met en œuvre des **mesures techniques et organisationnelles**
|
||||
appropriées (contrôle d’accès, chiffrement en transit selon configuration,
|
||||
journalisation, mots de passe, etc.).
|
||||
|
||||
[À compléter : politique de sauvegarde, PRA, certification éventuelle.]
|
||||
|
||||
---
|
||||
|
||||
## 9. Transferts hors Union européenne
|
||||
|
||||
[À compléter : absence de transfert, ou garanties (clauses types, pays
|
||||
adéquats, etc.).]
|
||||
|
||||
---
|
||||
|
||||
## 10. Cookies et traceurs (application web)
|
||||
|
||||
Lorsque le Service est utilisé via un **navigateur**, des **cookies** ou
|
||||
mécanismes équivalents peuvent être utilisés pour la **session**, la
|
||||
**sécurité** ou des mesures d’**audience** si elles sont activées.
|
||||
|
||||
[À compléter : liste des traceurs, finalité, durée, consentement si requis.]
|
||||
|
||||
---
|
||||
|
||||
## 11. Données des enfants
|
||||
|
||||
Les données concernant les **enfants** ne sont traitées que dans le **cadre
|
||||
légal** de la garde et des missions de la collectivité, avec les **garants**
|
||||
habituellement titulaires de l’autorité parentale ou personnes désignées par la
|
||||
loi.
|
||||
|
||||
[À compléter : référence au cadre local (protection de l’enfance, secret
|
||||
professionnel, etc.).]
|
||||
|
||||
---
|
||||
|
||||
## 12. Évolution de la politique
|
||||
|
||||
La présente politique peut être **modifiée**. Les Utilisateurs en sont informés
|
||||
par un **moyen adapté** ; une **nouvelle version** peut être présentée lors de la
|
||||
connexion ou de l’inscription, avec **trace** de l’acceptation lorsque le
|
||||
Service le prévoit.
|
||||
|
||||
---
|
||||
|
||||
## 13. Contact
|
||||
|
||||
[À compléter : même bloc que section 2 si besoin.]
|
||||
|
||||
---
|
||||
|
||||
*Document généré comme base de travail pour le projet P'titsPas. Il ne
|
||||
constitue pas un conseil juridique.*
|
||||
Binary file not shown.
Reference in New Issue
Block a user