feat(admin): D-13 partial — bannière "MODE ADMIN" + doc périmètre

## Bannière mode admin

Ajout d'un suffixe "[⚙ MODE ADMIN]" dans le titre de la fenêtre principale
quand `admin_mode.is_admin()` retourne True. Signal visuel clair pour :
- Le bêta-testeur (s'il bidouille, il voit qu'il a déverrouillé quelque chose)
- L'opérateur Dom (pour vérifier d'un coup d'œil que le mode admin est actif
  pour ses propres tests)

## Périmètre D-13 partial

Documenté dans `decisions/2026-06-02_dom_d13-partial-scope.md` :

| Protection | Statut |
|---|---|
| VLM Ollama caché en non-admin |  (D-11) |
| Titre fenêtre signalé en admin |  (ce commit) |
| Stopwords personnalisés | ⏭ Reporté v11.5 |
| Profils techniques (regex_overrides, force_terms) | ⏭ Reporté v11.5 |
| Choix moteur NER | ⏭ Reporté v11.5 |
| Sauvegarde configs sensibles | ⏭ Reporté v11.5 |

## Pourquoi le report est OK pour MVP

1. Le risque RGPD critique (envoi externe à Ollama) est résolu par D-11
2. Les autres réglages, bien que visibles, ne déclenchent pas de fuite
3. La transposition customtkinter v6 (v11.5) refondra l'UI — patcher
   2874 lignes tkinter aujourd'hui = double travail à refaire en v6
4. Le bêta-testeur n'a pas accès au mode admin (pas de fichier .admin
   livré, pas d'env var par défaut)

## Activation manuelle

- Env : `ANON_ADMIN=1 python Pseudonymisation_Gui_V5.py`
- Fichier : créer `.admin` à la racine

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-02 17:04:01 +02:00
parent 831c70c105
commit 91c51514de
2 changed files with 95 additions and 3 deletions

View File

@@ -0,0 +1,85 @@
---
from: dom
to: all
date: 2026-06-02T17:00:00+02:00
topic: d13-partial-scope-mvp
status: closed
priority: blocker
references:
- decision: 2026-06-02_dom_mvp-pivots-strategiques.md (D-13)
- commit: 40c6f23 (admin_mode.py)
---
# D-13 — Périmètre partiel pour le MVP, complet reporté à v11.5
## Décision
D-13 « réglages partiellement protégés » est livré **partiellement** dans
le MVP, le reste étant reporté à la transposition GUI customtkinter v6
(v11.5).
## Ce qui est livré dans le MVP
### Module `admin_mode.py`
Détecte si le mode admin est actif via :
1. Variable d'env `ANON_ADMIN=1` (ou `true`/`yes`/`on`)
2. Fichier `.admin` à la racine de l'application
Expose `is_admin()` et `admin_required(feature_name)`.
### Protections actives
| Réglage | Protection | Effet |
|---|---|---|
| **VLM Ollama** | ✅ Caché en non-admin | Le bêta ne peut pas envoyer de contenu à Ollama externe |
| **Titre fenêtre** | ✅ Affiche `[⚙ MODE ADMIN]` si actif | Signal visuel au bêta et à l'opérateur |
## Ce qui est reporté à v11.5 (customtkinter v6)
| Réglage | Pourquoi reporté |
|---|---|
| **Stopwords personnalisés** | Modifier 2874 lignes tkinter sans casser = risque élevé |
| **Profils techniques** (regex_overrides, force_terms) | idem |
| **Choix moteur NER** (GLiNER, CamemBERT, EDS-Pseudo) | idem |
| **Sauvegarde fichiers config sensibles** | idem |
| **Cases à cocher VLM annexes** (profile_force_disable_vlm) | Sans effet en non-admin de toute façon (VlmManager=None) |
## Pourquoi le report est acceptable
1. **Le risque critique RGPD** (envoi externe à Ollama) est **résolu** par D-11
2. Les autres réglages, bien que visibles, **ne déclenchent pas de fuite externe**
3. La transposition customtkinter v6 va de toute façon refondre toute l'UI
4. Patcher 2874 lignes tkinter aujourd'hui = double travail (à refaire en v6)
## Décisions de Dom à acter
- **Pour le MVP bêta** : D-13 partial validé, bêta-testeur Province Bêta
n'a pas accès au VLM
- **Pour la v11.5** : D-13 complet à implémenter dans la transposition
customtkinter v6 — sections "Paramètres avancés" et "Profils
techniques" cachées ou désactivées en non-admin
## Activation du mode admin
```bash
# Linux/Mac
export ANON_ADMIN=1
python Pseudonymisation_Gui_V5.py
# Windows (PowerShell)
$env:ANON_ADMIN = "1"
.\Pseudonymisation.exe
# Permanent (Linux/Mac) : créer un fichier .admin à la racine
touch /chemin/vers/Pseudonymisation/.admin
```
## Statut
**Acté**. Documentation pour audit DPO/CNIL :
- Le bêta-testeur Province Bêta ne dispose pas du mode admin
- Le fichier `.admin` n'est pas livré dans le pack OwnCloud
- Aucune variable d'env n'est configurée par défaut
- Pour activer le mode admin, l'opérateur doit faire une action explicite