16 lines
659 B
TypeScript
16 lines
659 B
TypeScript
import { cookies } from "next/headers";
|
|
import { authCookieHeader } from "@/lib/cookies";
|
|
import { getMeCached } from "@/lib/serverData";
|
|
import { isSuperOrOwner } from "@/lib/roles";
|
|
import Forbidden from "../Forbidden";
|
|
import SettingsShell from "./SettingsShell";
|
|
|
|
export default async function SettingsLayout({ children }: { children: React.ReactNode }) {
|
|
const cookie = authCookieHeader(await cookies());
|
|
const me = await getMeCached(cookie || undefined);
|
|
if (!me.user || !isSuperOrOwner(me.user.role)) {
|
|
return <Forbidden text="站点设置仅超级管理员和站长可操作。" />;
|
|
}
|
|
return <SettingsShell>{children}</SettingsShell>;
|
|
}
|