merge(master): intégration develop — ticket #50, documents légaux et validation CGU
Squash merge de la branche develop dans master : un seul commit sur master pour regrouper la livraison liée au ticket #50 (affichage dynamique des CGU et de la politique de confidentialité à l'inscription) ainsi que la documentation et les ajustements associés. Frontend (P'titsPas) : modale de validation bloquante avec onglets CGU / confidentialité, chargement des PDF depuis l'API des documents légaux actifs, affichage via pdfx (PdfViewPinch et barre de progression latérale sur le web, repli PdfView sous Windows). Branchement dans le flux d'inscription (écran de présentation), enrichissement du UserService et correction des chemins média pour les URL absolues. Documentation: jeux de fichiers juridiques (markdown et PDF de référence), réorganisation (dossier docs/juridique, archives, renommage du briefing), mises à jour index, liste de tickets et décisions projet. Scripts et métadonnées mineures (Gitea, pubspec, index web). 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