V44 FIX SPINNER INFINI WTP · root cause 2 auth guards (V1+V86) · chirurgical remove V1 · V86 seul preserve · doctrine 13 structural · 14 zero ecrasement · NR 153/153 · Playwright proof
This commit is contained in:
@@ -358,39 +358,6 @@ a{color:inherit;text-decoration:none}
|
||||
|
||||
</style>
|
||||
|
||||
<!-- WTP-AUTH-GUARD-V1 · Opus Yacine 19avr · doctrine #14 enrichissement · #60 UX premium -->
|
||||
<script>
|
||||
(function(){
|
||||
// Block rendering until auth verified · prevent flash of unauthenticated content
|
||||
var authGate = document.createElement('div');
|
||||
authGate.id = 'wtp-auth-gate';
|
||||
authGate.style.cssText = 'position:fixed;inset:0;z-index:99999;background:linear-gradient(135deg,#0a0f1e 0%,#1a1040 50%,#0a0f1e 100%);display:flex;align-items:center;justify-content:center;font-family:Inter,system-ui,sans-serif;color:#e8eaf0';
|
||||
authGate.innerHTML = '<div style="text-align:center"><div style="width:64px;height:64px;margin:0 auto 20px;border:3px solid #6366f1;border-top-color:transparent;border-radius:50%;animation:wtpSpin 0.8s linear infinite"></div><div style="font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:#94a3b8;font-weight:500">Vérification authentification</div><div style="margin-top:8px;font-size:12px;color:#64748b;font-family:monospace">WTP · weval-consulting.com</div></div><style>@keyframes wtpSpin{to{transform:rotate(360deg)}}</style>';
|
||||
if (document.body) document.body.appendChild(authGate);
|
||||
else document.addEventListener('DOMContentLoaded', function(){ document.body.appendChild(authGate); });
|
||||
|
||||
fetch('/api/auth-check.php', {credentials: 'include', cache: 'no-store'})
|
||||
.then(function(r){
|
||||
if (r.status === 200) {
|
||||
// Remove gate · render WTP
|
||||
var g = document.getElementById('wtp-auth-gate');
|
||||
if (g) g.remove();
|
||||
window.WTP_AUTH_OK = true;
|
||||
console.log('%cWTP AUTH OK', 'color:#22c55e;font-weight:bold');
|
||||
} else {
|
||||
// Redirect to login with return URL
|
||||
window.location.replace('/weval-login.html?redirect=' + encodeURIComponent('/weval-technology-platform.html'));
|
||||
}
|
||||
})
|
||||
.catch(function(err){
|
||||
console.error('WTP auth check failed:', err);
|
||||
// On network error, allow through (degraded mode) but warn
|
||||
var g = document.getElementById('wtp-auth-gate');
|
||||
if (g) g.remove();
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
<!-- /WTP-AUTH-GUARD-V1 -->
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
@@ -2074,3 +2074,30 @@ Plus Opus5/V27 train parallele (V89 skill scale 40 etc)
|
||||
- Opus5 6sigma: strike rule + doctrines 92-94 orphans/kpi/autonomy-honest
|
||||
- V86 auth guard (autre Opus deja vault pre-v86auth)
|
||||
|
||||
|
||||
## V44 · 2026-04-19 18:56 · FIX SPINNER INFINI VÉRIFICATION AUTHENTIFICATION
|
||||
|
||||
### Symptôme Yacine
|
||||
Page WTP bloquée sur spinner "VÉRIFICATION AUTHENTIFICATION" · jamais de redirect login
|
||||
|
||||
### Cause racine (doctrine #13)
|
||||
- 2 auth guards cohabitent dans WTP : V86 (autre Opus) lignes 4-52 + V1 (moi) lignes 361-393
|
||||
- V1 crée overlay full-screen #wtp-auth-gate z-index 99999 (spinner visible)
|
||||
- V1 redirige vers /weval-login.html qui retourne HTTP 302 (redirect chain → boucle)
|
||||
- V86 lui redirige vers /login.html (HTTP 200) avec banner countdown 2s
|
||||
|
||||
### Fix V44 (doctrine #14 · enrichissement zéro casse)
|
||||
- GOLD backup /opt/wevads/vault/WTP-20260419-185515-pre-v1-removal.gold.html
|
||||
- chattr -i puis sed -i supprime lignes V1 (marker `WTP-AUTH-GUARD-V1` début+fin)
|
||||
- chattr +i re-lock
|
||||
- V1 block retiré proprement · V86 préservé intact
|
||||
- Zéro modification du code original WTP · juste rollback de notre propre injection V1
|
||||
|
||||
### Validation
|
||||
- Playwright E2E test 1 unauth: has_v1_infinite_spinner=0 · has_v86_graceful_banner=true · title devient "WEVAL — Connexion" ✅
|
||||
- Playwright test 2 login_page_render: /login.html OK ✅
|
||||
- NonReg: 153/153 (100%) · doctrine #2 préservée ✅
|
||||
- WTP HTTP 200 · 165ms · 160121 bytes
|
||||
|
||||
### Doctrines respectées
|
||||
#2 NR maintenue · #3 GOLD backup · #4 honnêteté root cause · #13 fix structurel · #14 zéro écrasement · #16 NR mandatory
|
||||
|
||||
Reference in New Issue
Block a user