feat(licence): Settings affiche le porteur de la licence

Porteur, courriel, date d'emission et Installation ID, lus dans la charge
utile deja verifiee. Rempli une fois au demarrage sur les deux chemins
(deja licencie, activation reussie) : rien n'y change pendant une
session. Section masquee hors navigateur hote.

Les champs sont echappes avant interpolation dans ExecuteJavaScript bien
qu'ils viennent d'une charge utile signee — signee ne veut pas dire
inoffensive.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-09-05 16:19:24 +01:00
parent 61ec5ff7a1
commit 8f0bbb580f
4 changed files with 77 additions and 9 deletions
+13
View File
@@ -353,6 +353,19 @@ sur une licence acceptee — pas de bouton « plus tard ».
qui essaie d'en fabriquer une. Le journal note le verdict, **jamais la cle**.
- Hors du navigateur hote (`Bridge.active` faux : dev en navigateur, harnais de
test) il n'y a pas de licence a verifier — la porte est ouverte.
- **Settings → Licence** affiche porteur, courriel, date d'emission et
Installation ID. Rempli par `applyLicenceInfo(st)` **une fois au demarrage**
(les deux chemins : deja licencie, et activation reussie) plutot que branche
sur le rendu des reglages — rien n'y change pendant une session, et le panneau
est deja dans le DOM, cache. Section masquee hors navigateur hote : une suite
de tirets ferait croire a une activation perdue.
- Les champs sont **echappes avant interpolation** dans `ExecuteJavaScript`,
bien qu'ils viennent d'une charge utile signee : signee ne veut pas dire
inoffensive, c'est l'editeur qui les a tapes au moment d'emettre.
- Piege Delphi rencontre : **une routine imbriquee ne se declare pas au milieu
d'un corps de procedure** (seulement dans la section de declaration). En
glisser une casse l'inference des methodes anonymes de tout ce qui suit —
cinq `TThread.Queue` sans rapport se sont mis a ne plus compiler.
**ORDRE OBLIGATOIRE.** Tant que `LicencePublicKeyBlob` est a zero, aucune
licence n'est valide et l'ecran d'activation est **infranchissable** — l'exe