fix: login redirects to /rbac/user/login.ui, clean up iframe/modal, build.sh adds rbac user any perms
This commit is contained in:
parent
713f02f488
commit
35d8a3af98
11
build.sh
11
build.sh
@ -187,6 +187,17 @@ UPDATE permission SET path = CONCAT(path, '**')
|
||||
WHERE path IN ('/pcpool/', '/pcc/', '/storage_mgr/', '/image_mgr/', '/pccs/', '/appbase/', '/imgs/', '/bricks/')
|
||||
AND path NOT LIKE '%**';
|
||||
" 2>/dev/null
|
||||
# 确保 /rbac/user/ 下所有文件有 any 角色权限
|
||||
mysql -u test -ptest123 pccs -e "
|
||||
INSERT IGNORE INTO rolepermission (id, roleid, permid)
|
||||
SELECT CONCAT('ANY_', p.id), 'any', p.id
|
||||
FROM permission p
|
||||
WHERE p.path LIKE '/rbac/user/%'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM rolepermission rp
|
||||
WHERE rp.roleid = 'any' AND rp.permid = p.id
|
||||
);
|
||||
" 2>/dev/null
|
||||
green " OK"
|
||||
|
||||
# ============================================================
|
||||
|
||||
@ -25,24 +25,6 @@ body{font-family:system-ui;background:var(--bg);color:var(--text);min-height:100
|
||||
.card p{margin:0 0 12px;font-size:.85rem;color:var(--text2)}
|
||||
.card a{color:var(--primary);text-decoration:none;font-weight:600;display:inline-block;margin-right:16px}
|
||||
.footer{text-align:center;padding:12px;font-size:.75rem;color:var(--text3);border-top:1px solid var(--border)}
|
||||
/* Modal */
|
||||
.modal-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);z-index:1000;justify-content:center;align-items:center}
|
||||
.modal-overlay.show{display:flex}
|
||||
.modal{background:var(--card-bg);border-radius:12px;width:400px;max-width:90vw;box-shadow:0 20px 60px rgba(0,0,0,.3)}
|
||||
.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}
|
||||
.modal-header h3{margin:0;font-size:1rem}
|
||||
.modal-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text2)}
|
||||
.modal-body{padding:20px}
|
||||
.form-group{margin-bottom:12px}
|
||||
.form-group label{display:block;font-size:.85rem;color:var(--text2);margin-bottom:4px}
|
||||
.form-group input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:.9rem;background:var(--bg);color:var(--text);box-sizing:border-box}
|
||||
.btn{display:inline-block;padding:10px 16px;border:none;border-radius:8px;font-size:.9rem;cursor:pointer;font-weight:600}
|
||||
.btn-primary{background:var(--primary);color:#fff;width:100%}
|
||||
.btn-primary:hover{opacity:.9}
|
||||
.tab-bar{display:flex;border-bottom:1px solid var(--border);margin-bottom:16px}
|
||||
.tab{flex:1;text-align:center;padding:8px;cursor:pointer;font-size:.9rem;color:var(--text2);border-bottom:2px solid transparent}
|
||||
.tab.active{color:var(--primary);border-bottom-color:var(--primary)}
|
||||
.msg{margin-top:12px;font-size:.85rem;text-align:center;color:#dc2626}
|
||||
</style></head>
|
||||
<body>
|
||||
<div class="header">
|
||||
@ -51,16 +33,7 @@ body{font-family:system-ui;background:var(--bg);color:var(--text);min-height:100
|
||||
<div class="ctl">
|
||||
<button onclick="toggleTheme()" id="btn-theme">🌓</button>
|
||||
<button id="btn-lang">🌐 中文</button>
|
||||
<button id="btn-login" onclick="showLogin()">👤 登录</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-overlay" id="login-modal">
|
||||
<div class="modal" style="width:460px;height:520px;max-width:95vw;max-height:90vh">
|
||||
<div class="modal-header"><h3 id="modal-title">登录</h3><button class="modal-close" onclick="closeLogin()">✕</button></div>
|
||||
<div class="modal-body" style="padding:0;height:calc(100% - 49px)">
|
||||
<iframe id="login-iframe" src="" style="width:100%;height:100%;border:none" allow="same-origin"></iframe>
|
||||
</div>
|
||||
<button id="btn-login" onclick="location.href='/rbac/user/login.ui'">👤 登录</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -91,25 +64,6 @@ body{font-family:system-ui;background:var(--bg);color:var(--text);min-height:100
|
||||
var theme=localStorage.getItem('pccs-theme')||'light';
|
||||
document.documentElement.setAttribute('data-theme',theme);
|
||||
function toggleTheme(){theme=theme==='light'?'dark':'light';document.documentElement.setAttribute('data-theme',theme);localStorage.setItem('pccs-theme',theme)}
|
||||
function showLogin(){
|
||||
var iframe=document.getElementById('login-iframe');
|
||||
iframe.src='/rbac/user/login.ui';
|
||||
document.getElementById('login-modal').classList.add('show');
|
||||
// poll for session cookie (RBAC sets AIOHTTP_SESSION on successful login)
|
||||
var poll=setInterval(function(){
|
||||
if(document.cookie.indexOf('AIOHTTP_SESSION')>=0){
|
||||
clearInterval(poll);
|
||||
closeLogin();
|
||||
location.reload();
|
||||
}
|
||||
},500);
|
||||
// stop polling after 5 min
|
||||
setTimeout(function(){clearInterval(poll)},300000);
|
||||
}
|
||||
function closeLogin(){
|
||||
document.getElementById('login-modal').classList.remove('show');
|
||||
document.getElementById('login-iframe').src='';
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user