开放多项目大屏免登录访问

需求描述:/admin/display 需要无需管理员登录即可直接查看多项目公开运行状态。

实现思路:新增公开字段白名单接口与独立大屏页面,移除该路由的管理员会话依赖,同时保留 /api/admin/overview 的鉴权并补充隐私、路由和页面回归测试。

验证:Go 全量测试通过;前端 18 个测试文件共 59 项通过,TypeScript 检查通过。
This commit is contained in:
2026-07-31 16:36:03 +08:00
parent 17d296263c
commit d782227a23
15 changed files with 262 additions and 4 deletions

View File

@@ -4,6 +4,7 @@ import { AuthProvider, useAuth } from "./auth/AuthContext";
import { LoadingState } from "./components/Feedback";
import { AdminPage } from "./pages/AdminPage";
import { DisplayPage } from "./pages/DisplayPage";
import { PublicDisplayCenterPage } from "./pages/PublicDisplayCenterPage";
import { LoginPage } from "./pages/LoginPage";
import { HistoryPage } from "./pages/HistoryPage";
import { StaffPage } from "./pages/StaffPage";
@@ -50,7 +51,7 @@ export function App() {
<Route path="/admin/accounts" element={<AuthProvider portal="admin"><RequireAdmin><AdminPage /></RequireAdmin></AuthProvider>} />
<Route path="/admin/accounts/new" element={<AuthProvider portal="admin"><RequireAdmin><AdminPage /></RequireAdmin></AuthProvider>} />
<Route path="/admin/accounts/:accountId" element={<AuthProvider portal="admin"><RequireAdmin><AdminPage /></RequireAdmin></AuthProvider>} />
<Route path="/admin/display" element={<AuthProvider portal="admin"><RequireAdmin><AdminPage /></RequireAdmin></AuthProvider>} />
<Route path="/admin/display" element={<PublicDisplayCenterPage />} />
<Route path="*" element={<Navigate to="/" replace />} />
</Routes>
</BrowserRouter>