function AdminScreen() { const [tab, setTab] = useState("users"); const roleColor = (r) => ({ "Admin": "danger", "Editor": "primary", "Analyst": "ok", "Data Engineer": "warn", "Governance Lead": "primary", "Executive Viewer": "primary", "Viewer": "", }[r] || ""); const permMatrix = [ { role: "Admin", dash: "F", data: "F", user: "F", alert: "F", audit: "F" }, { role: "Editor", dash: "F", data: "E", user: "V", alert: "E", audit: "V" }, { role: "Analyst", dash: "E", data: "E", user: "-", alert: "V", audit: "-" }, { role: "Data Engineer", dash: "V", data: "F", user: "-", alert: "V", audit: "V" }, { role: "Governance Lead", dash: "V", data: "E", user: "V", alert: "V", audit: "F" }, { role: "Executive Viewer", dash: "V", data: "V", user: "-", alert: "V", audit: "-" }, { role: "Viewer", dash: "V", data: "-", user: "-", alert: "-", audit: "-" }, ]; const pKey = (v) => ({ F: "Full", E: "Edit", V: "View", "-": "—" }[v] || v); const pColor = (v) => ({ F: "var(--ok)", E: "var(--primary)", V: "var(--ink-2)", "-": "var(--ink-4)" }[v]); const pBg = (v) => ({ F: "var(--ok-tint)", E: "var(--primary-tint)", V: "var(--panel-2)", "-": "transparent" }[v]); return (
Users & Access Control
248 total users across 18 departments · SSO via Keycloak · MFA compliance 96.4%
{/* Compliance banner */}
System compliant with 5 standards
ISO 27001 · SOC 2 Type II · DPDP (India) · GDPR · HIPAA · Last audit: Jun 12, 2026
{["ISO 27001", "SOC 2", "DPDP", "GDPR", "HIPAA"].map(s => {s})}
{[{ id: "users", label: "Users", count: 248 }, { id: "roles", label: "Roles & Permissions", count: 7 }, { id: "audit", label: "Audit Log", count: "Live" }].map(t => ( ))}
{tab === "users" && (
{USERS.map((u, i) => ( ))}
User Role Department MFA Last active
{u.name.split(' ').map(n => n[0]).slice(0, 2).join('')}
{u.name}
{u.email}
{u.role} {u.dept} {u.mfa ? Enabled : Required} {u.last}
)} {tab === "roles" && (

Permission Matrix

RBAC · Full / Edit / View / — · ABAC policies overlay per-department
{permMatrix.map((p, i) => ( {["dash","data","user","alert","audit"].map(k => ( ))} ))}
Role Dashboards Data Sources User Mgmt Alerts Audit Log Users
{p.role} {pKey(p[k])} {[4, 22, 68, 12, 3, 6, 133][i]}
)} {tab === "audit" && (

Audit Log

Immutable · WORM storage · Retained 7 years per DPDP
Streaming
{AUDIT_LOG.map((a, i) => (
0 ? '1px solid var(--border)' : 0, display: 'flex', gap: 12, alignItems: 'flex-start' }}> {a.at}
{a.who} {a.action}
))}
)}
); } window.AdminScreen = AdminScreen;