feat(licence): masquer Register quand la 2e couche refuse
A l'arrivee sur l'ecran de connexion, /ping est interroge : son 404 JSON exact ne peut venir, avant connexion, que de la 2e couche. Dans ce cas les onglets disparaissent et seul Login reste. Tout autre echec laisse Register visible — le masquer a tort empecherait un vrai client de creer son compte. Le test porte sur le corps JSON, pas sur le seul statut : le verrou du jeton repond aussi 404, sans corps. Cosmetique : /register etait deja refuse cote serveur. On cesse seulement de proposer un formulaire qui n'aboutit jamais. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -7026,10 +7026,37 @@ async function ensureLicence() {
|
||||
});
|
||||
}
|
||||
|
||||
// REGISTER MASQUE QUAND LA 2e COUCHE REFUSE LA LICENCE.
|
||||
//
|
||||
// Cosmetique, et il faut le savoir : /register est deja refuse cote serveur.
|
||||
// Ce qui change, c'est que qui a rapiece la 1re couche ne se voit plus offrir
|
||||
// un formulaire de creation de compte qui n'aboutit jamais. /ping n'exige
|
||||
// aucune session et existe toujours : avant connexion, un 404 de sa part ne
|
||||
// peut venir que de la 2e couche. Toute AUTRE panne laisse Register visible —
|
||||
// masquer par erreur empecherait un client legitime de creer son compte.
|
||||
// Pas d'await chez l'appelant : l'ecran d'authentification ne doit pas
|
||||
// attendre ce test pour s'afficher.
|
||||
async function applyRegisterVisibility() {
|
||||
if (!Bridge.active) return;
|
||||
let refused = false;
|
||||
try { await api('/ping'); }
|
||||
// Le 404 JSON exact de la 2e couche, pas n'importe quel 404 : le verrou du
|
||||
// jeton repond aussi 404, mais sans corps JSON.
|
||||
catch (e) { refused = (e.status === 404 && e.body && e.body.error === 'Not found'); }
|
||||
const tabs = document.querySelector('.auth-tabs');
|
||||
if (tabs) tabs.classList.toggle('is-hidden', refused);
|
||||
if (refused) {
|
||||
$$('.auth-tab').forEach(x => x.classList.toggle('is-active', x.dataset.tab === 'login'));
|
||||
$('#loginForm').classList.remove('is-hidden');
|
||||
$('#registerForm').classList.add('is-hidden');
|
||||
}
|
||||
}
|
||||
|
||||
async function showAuth() {
|
||||
$('#authScreen').classList.remove('is-hidden');
|
||||
$('#appShell').classList.add('is-hidden');
|
||||
if (autoLockTimer) { clearTimeout(autoLockTimer); autoLockTimer = null; }
|
||||
applyRegisterVisibility();
|
||||
|
||||
// Re-query PIN presence each time we land on the auth screen — the
|
||||
// user may have set/removed it from another instance, and we want
|
||||
|
||||
Reference in New Issue
Block a user