Files
homelab/site/admin.html
T

145 lines
6.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light">
<meta name="theme-color" content="#f0c94b">
<meta name="robots" content="noindex, nofollow">
<title>Portal 管理 / xiteng.site</title>
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="icon" href="/icons/favicon-32.png" sizes="32x32" type="image/png">
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png">
<link rel="manifest" href="/manifest.webmanifest">
<link rel="stylesheet" href="/styles.css">
<script src="/admin.js" defer></script>
</head>
<body class="admin-page">
<header class="topbar">
<nav class="shell nav" aria-label="管理导航">
<a class="brand" href="/">liooil / xiteng.site</a>
<div class="nav-links">
<a href="#identity">身份</a>
<a href="#vault">Key Vault</a>
<a href="#components">组件</a>
<a href="/account">我的凭据</a>
<a href="/">公开主页</a>
</div>
</nav>
</header>
<main class="shell admin-main">
<section class="admin-heading">
<p class="eyebrow">ADMIN CONTROL PLANE</p>
<h1>身份、凭据与组件</h1>
<p>
Authentik 是唯一身份系统。只有用户名严格等于 <code>liooil</code> 的会话可以访问本页;
Key Vault 独立负责 Backend Credential,管理页不会保存或回显密钥明文。
</p>
<p id="admin-session" class="admin-session" aria-live="polite">正在验证管理员会话…</p>
</section>
<section class="admin-summary" aria-label="管理摘要">
<div><strong id="admin-users"></strong><span>家庭用户</span></div>
<div><strong id="admin-credentials"></strong><span>Vault 凭据</span></div>
<div><strong id="admin-total"></strong><span>动态组件</span></div>
<div><strong id="admin-down"></strong><span>不可用组件</span></div>
</section>
<section id="identity" class="admin-panel">
<div class="admin-panel-heading">
<div>
<p class="section-kicker">AUTHENTIK / IDENTITY</p>
<h2>用户与访问策略</h2>
</div>
<button id="identity-refresh" class="admin-action" type="button">刷新</button>
</div>
<div id="identity-status" class="admin-notice" aria-live="polite">正在连接 Authentik…</div>
<form id="identity-search-form" class="admin-form admin-form-inline compact">
<label>搜索<input name="search" maxlength="150" placeholder="用户名、显示名或邮箱"></label>
<button class="admin-action" type="submit">搜索</button>
</form>
<div class="admin-form-grid">
<form id="user-create-form" class="admin-form">
<h3>新建普通用户</h3>
<label>用户名<input name="username" required maxlength="150" autocomplete="off"></label>
<label>显示名<input name="name" required maxlength="160" autocomplete="off"></label>
<label>邮箱<input name="email" type="email" maxlength="254" autocomplete="off"></label>
<button class="admin-action" type="submit">创建并加入 liuhome</button>
</form>
<form id="group-create-form" class="admin-form">
<h3>新建用户组</h3>
<label>名称<input name="name" required maxlength="160" autocomplete="off"></label>
<button class="admin-action" type="submit">创建用户组</button>
<p><code>liuhome</code> 是家庭基础组,不能重命名或删除。</p>
</form>
</div>
<div class="admin-subsection">
<h3>用户</h3>
<div id="identity-users" class="admin-list"><div class="loading-card">正在读取用户…</div></div>
</div>
<div class="admin-subsection">
<h3>用户组</h3>
<div id="identity-groups" class="admin-list"><div class="loading-card">正在读取用户组…</div></div>
</div>
<div class="admin-subsection">
<h3>非开放服务权限矩阵</h3>
<p class="admin-help">每个服务只允许所选用户组;当前统一使用 <code>liuhome</code></p>
<div id="identity-applications" class="admin-list"><div class="loading-card">正在读取应用…</div></div>
</div>
<div class="admin-subsection">
<h3>身份操作审计</h3>
<div id="identity-audit" class="admin-audit"></div>
</div>
</section>
<section id="vault" class="admin-panel">
<div class="admin-panel-heading">
<div>
<p class="section-kicker">KEY VAULT</p>
<h2>Backend Provider 凭据</h2>
</div>
<button id="vault-refresh" class="admin-action" type="button">刷新</button>
</div>
<div class="admin-notice">
管理员只能管理 Backend CredentialFrontend Credential 始终保留在用户浏览器中。
</div>
<form id="credential-create-form" class="admin-form admin-form-inline">
<label>所有者<input value="当前 Authentik 管理员会话" disabled></label>
<label>Provider<select name="providerId" id="admin-credential-provider" required></select></label>
<label>名称<input name="name" required maxlength="120" value="default"></label>
<label>API Key<input name="apiKey" type="password" required maxlength="32768" autocomplete="new-password"></label>
<button class="admin-action" type="submit">加密保存</button>
</form>
<div id="vault-credentials" class="admin-list">
<div class="loading-card">正在读取凭据元数据…</div>
</div>
<div class="admin-subsection">
<h3>审计</h3>
<div id="vault-audit" class="admin-audit"></div>
</div>
</section>
<section id="components" class="admin-panel">
<div class="admin-panel-heading">
<div>
<p class="section-kicker">REGISTRY / MONITORING</p>
<h2>组件生命周期</h2>
</div>
<button id="admin-refresh" class="admin-action" type="button">刷新</button>
</div>
<p id="admin-updated" class="admin-help" aria-live="polite">正在读取 Registry…</p>
<div id="admin-components" class="admin-components" aria-live="polite">
<div class="loading-card">正在读取组件生命周期…</div>
</div>
</section>
</main>
</body>
</html>