diff --git a/build.sh b/build.sh index 9a70904..57e6550 100644 --- a/build.sh +++ b/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" # ============================================================ diff --git a/wwwroot/index.html b/wwwroot/index.html index 70bd4c4..f5dbb0f 100644 --- a/wwwroot/index.html +++ b/wwwroot/index.html @@ -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}
@@ -51,16 +33,7 @@ body{font-family:system-ui;background:var(--bg);color:var(--text);min-height:100
- -
-
- - @@ -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=''; -}