From 9de3cde6da95a3102fe135b7de0efd3cf33c1169 Mon Sep 17 00:00:00 2001 From: r-zakarya <82443831+r-zakarya@users.noreply.github.com> Date: Thu, 17 Sep 2026 05:57:16 +0100 Subject: [PATCH] fix(licence): le refus de la 2e couche ne s'affiche plus avant connexion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avant toute session, le 404 generique ne peut venir que de la 2e couche : les routes appelees a ce stade existent toutes, et leurs vraies erreurs portent un autre texte. api() vide son message, toast() ignore un message vide — qui a rapiece la 1re couche ne voit rien. Apres connexion rien ne change : pieces jointes et dossiers renvoient un 404 'Not found' legitime qu'il faut montrer. Prix assume : une route perdue par un build casse echouerait aussi en silence avant connexion. Co-Authored-By: Claude Opus 5 --- js/app.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/js/app.js b/js/app.js index c28c23e..8acb4d3 100644 --- a/js/app.js +++ b/js/app.js @@ -842,6 +842,15 @@ async function api(path, opts) { const err = new Error(body.error || ('HTTP ' + r.status)); err.status = r.status; err.body = body || {}; + // LE REFUS DE LA 2e COUCHE DE LICENCE NE S'AFFICHE PAS. Avant toute + // session, le 404 generique ne peut venir que d'elle (voir PM.Router) : + // les routes qu'on appelle a ce stade existent toutes, et leurs vraies + // erreurs portent un autre texte. On le vide, et toast() ignore un + // message vide — qui aurait rapiece la 1re couche ne voit rien. + // APRES connexion on n'y touche pas : pieces jointes et dossiers + // renvoient aussi un 404 'Not found' legitime qu'il faut montrer. + if (r.status === 404 && err.message === 'Not found' && !state.token) + err.message = ''; throw err; } return body; @@ -1134,6 +1143,8 @@ function showLockoutCountdown(seconds) { // ============================================================ function toast(msg, type) { + // Une bulle vide n'informe de rien ; api() vide expres certains messages. + if (!msg) return; type = type || 'success'; const container = $('#toastContainer'); const t = document.createElement('div');