feat: 完成 issue #151 用户/角色管理页补充角色权限矩阵视图(PRD 5.7)

This commit is contained in:
2026-08-05 10:34:59 +08:00
parent a2c089499e
commit 458220ecbc
2 changed files with 35 additions and 0 deletions
+9
View File
@@ -78,6 +78,15 @@
<div class="hint">配置后登录页出现「企业 SSO 登录」入口(标准 OIDC 授权码流程);
未配置走本地账号。令牌换会话的后端端点待 IAM 就绪后对接(见 README)。</div>
</div>
<div class="panel" style="margin-top:12px">
<h2>角色权限矩阵(PRD 5.7,对齐 rbac.py Resource×Action)</h2>
<table id="perm-matrix">
<thead><tr><th>角色</th><th>查看 view</th><th>配置 edit</th><th>发布/回滚 publish</th><th>用户管理 manage</th></tr></thead>
<tbody></tbody>
</table>
<div class="hint">矩阵即前端门控依据:配置台写按钮按会话角色置灰(Viewer 只读 /
Editor 可配置 / Publisher 可发布回滚),本页仅 admin 可见。</div>
</div>
<div class="panel" style="margin-top:12px">
<h2>审计日志(写操作落日志,最近 500 条)</h2>
<div id="audit-list"></div>
+26
View File
@@ -117,5 +117,31 @@
};
renderUsers();
renderPermMatrix();
});
/* 角色权限矩阵展示(issue #151 验收:矩阵生效可见;与 studio 门控同源) */
var PERM_MATRIX = {
readonly: { view: true, edit: false, publish: false, manage: false },
engineer: { view: true, edit: true, publish: false, manage: false },
admin: { view: true, edit: true, publish: true, manage: true }
};
function renderPermMatrix() {
var tbody = document.querySelector("#perm-matrix tbody");
tbody.innerHTML = "";
UserStore.ROLES.forEach(function (r) {
var tr = document.createElement("tr");
var td = document.createElement("td");
td.textContent = UserStore.ROLE_LABELS[r];
td.className = "role-" + r;
tr.appendChild(td);
["view", "edit", "publish", "manage"].forEach(function (a) {
var c = document.createElement("td");
c.textContent = PERM_MATRIX[r][a] ? "✓" : "✗";
c.style.color = PERM_MATRIX[r][a] ? "#2ecc71" : "#64748b";
tr.appendChild(c);
});
tbody.appendChild(tr);
});
}
})();