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:
@@ -372,9 +372,16 @@ class ToolTip:
|
||||
class App:
|
||||
def __init__(self, root: tk.Tk):
|
||||
self.root = root
|
||||
# Titre avec version longue pour identifier la build au premier coup d'œil
|
||||
# (évite les confusions entre exe ancien/nouveau lors des tests).
|
||||
self.root.title(f"{APP_TITLE} — {_version_long()}")
|
||||
# D-13 — Mode admin : titre annoté si admin actif (signale au bêta
|
||||
# et à l'opérateur que des fonctions sensibles sont déverrouillées).
|
||||
# L'activation se fait via env ANON_ADMIN=1 ou fichier .admin.
|
||||
try:
|
||||
from admin_mode import is_admin as _is_admin
|
||||
_admin_active = _is_admin()
|
||||
except Exception:
|
||||
_admin_active = False
|
||||
admin_tag = " [⚙ MODE ADMIN]" if _admin_active else ""
|
||||
self.root.title(f"{APP_TITLE} — {_version_long()}{admin_tag}")
|
||||
self.root.geometry("780x820")
|
||||
self.root.minsize(600, 650)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user