需要管理员权限
此区域仅供站点管理员访问,如有疑问请联系站长。
返回首页import type { Metadata } from "next"; import Link from "next/link"; import { cookies } from "next/headers"; import { ShieldAlert } from "lucide-react"; import { authCookieHeader, TOKEN_COOKIE } from "@/lib/cookies"; import { getMeCached, getPublicSettingsCached } from "@/lib/serverData"; import { isStaff } from "@/lib/roles"; import AdminShell from "@/components/admin/AdminShell"; // 整个 /admin 树不进入索引(子页面无需重复声明) export const metadata: Metadata = { robots: { index: false, follow: false }, }; // 权限以 Go 端 RequireStaff 为唯一判定;这里仅决定管理界面是否直出, // 非管理团队访问任意 /admin/* 时 SSR 统一给出无权限提示(所有写接口仍由后端 403 兜底)。 export default async function AdminLayout({ children }: { children: React.ReactNode }) { const cookieStore = await cookies(); const cookie = authCookieHeader(cookieStore); const me = await getMeCached(cookie || undefined); const settings = await getPublicSettingsCached(); const theme = cookieStore.get("j13-theme")?.value === "dark" ? "dark" : "light"; if (!me.user || !isStaff(me.user.role)) { return (
此区域仅供站点管理员访问,如有疑问请联系站长。
返回首页