fix(login-beton-v2): root cause defintive - weval-global-logout a href=/logout intercepte + dummy block injection + CSS+JS triple guard + cache-busting meta - BETON-DOCTRINE-101 zero regression possible - Playwright validated 0 logout visible 0 spinner fantome

This commit is contained in:
opus
2026-04-21 13:02:50 +02:00
parent 8e2cd2da40
commit 04602806ed

View File

@@ -37,7 +37,7 @@ h1{font-size:1.6rem;font-weight:700;margin-bottom:4px}h1 span{color:#818cf8}
.weval-logout-btn,[class*="logout"],#logout-btn,.session-badge,.user-badge{display:none!important;visibility:hidden!important}
/* BETON-DOCTRINE-101 enforcement CSS - immune to JS overwrites */
#auto-redirect,#auto-redirect *,.redirect-msg,.spinner,[class*="logout"],#logout-btn,.session-badge,.user-badge,.weval-logout-btn{
#auto-redirect,#auto-redirect *,.redirect-msg,.spinner,[class*="logout"],#logout-btn,#weval-global-logout,#weval-gl,.session-badge,.user-badge,.weval-logout-btn,a[href*="/logout"],a[href*="action=logout"]{
display:none!important;
visibility:hidden!important;
opacity:0!important;
@@ -54,6 +54,8 @@ body.authenticated #auto-redirect{display:none!important}
<!-- BETON-DOCTRINE-101 cache-busting v1 -->
</head>
<body>
<div id="weval-global-logout" style="display:none!important;visibility:hidden!important" aria-hidden="true" data-beton-101="dummy-to-block-auto-injection"></div>
<div class="box">
<div class="logo"></div>
<h1>WEVAL <span>Consulting</span></h1>
@@ -190,8 +192,14 @@ if(window.location.search.includes('error=')){document.getElementById('manual').
try {
var ar = document.getElementById('auto-redirect');
if(ar) ar.parentNode.removeChild(ar);
var logouts = document.querySelectorAll('[class*="logout"],#logout-btn,.weval-logout-btn');
for(var i=0;i<logouts.length;i++) logouts[i].parentNode && logouts[i].parentNode.removeChild(logouts[i]);
var sels = '[class*="logout"]:not([data-beton-101]),#logout-btn,.weval-logout-btn,#weval-gl,a[href*="/logout"],a[href*="action=logout"]';
var tgts = document.querySelectorAll(sels);
for(var i=0;i<tgts.length;i++){
var t = tgts[i];
if(t && t.parentNode && t.getAttribute && t.getAttribute('data-beton-101')!=='dummy-to-block-auto-injection'){
t.parentNode.removeChild(t);
}
}
} catch(e){}
}
// Tue avant DOM ready
@@ -209,7 +217,13 @@ if(window.location.search.includes('error=')){document.getElementById('manual').
for(var j=0;j<muts[i].addedNodes.length;j++){
var n = muts[i].addedNodes[j];
if(n.nodeType!==1) continue;
if(n.id==='auto-redirect'){ n.parentNode.removeChild(n); continue; }
if(n.id==='auto-redirect'||n.id==='weval-global-logout'||n.id==='weval-gl'){
if(n.getAttribute('data-beton-101')==='dummy-to-block-auto-injection') continue; /* keep our dummy */
n.parentNode.removeChild(n); continue;
}
if(n.tagName==='A' && n.getAttribute('href') && /\/logout|action=logout/.test(n.getAttribute('href'))){
n.parentNode && n.parentNode.removeChild(n); continue;
}
if(n.className && typeof n.className==='string' && /logout|session-badge|user-badge/i.test(n.className)){
n.parentNode && n.parentNode.removeChild(n);
}