完善站点运营设置:分路由管理、登录可见评论、邮件模板内联与关闭注册 SSR。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,21 +1,28 @@
|
||||
import type { Metadata } from "next";
|
||||
import { cookies } from "next/headers";
|
||||
import { getMeCached, getPublicSettingsCached } from "@/lib/serverData";
|
||||
import { authCookieHeader } from "@/lib/cookies";
|
||||
import { isSuperOrOwner } from "@/lib/roles";
|
||||
import Forbidden from "../Forbidden";
|
||||
import SettingsAdmin from "./SettingsAdmin";
|
||||
import { redirect } from "next/navigation";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "站点设置",
|
||||
};
|
||||
|
||||
export default async function AdminSettingsPage() {
|
||||
const cookie = authCookieHeader(await cookies());
|
||||
const me = await getMeCached(cookie || undefined);
|
||||
if (!me.user || !isSuperOrOwner(me.user.role)) {
|
||||
return <Forbidden text="站点设置仅超级管理员和站长可操作。" />;
|
||||
}
|
||||
const settings = await getPublicSettingsCached();
|
||||
return <SettingsAdmin initial={settings} />;
|
||||
interface PageProps {
|
||||
searchParams: Promise<{ section?: string }>;
|
||||
}
|
||||
|
||||
const LEGACY: Record<string, string> = {
|
||||
basic: "/admin/settings/basic",
|
||||
content: "/admin/settings/access",
|
||||
security: "/admin/settings/access",
|
||||
access: "/admin/settings/access",
|
||||
mail: "/admin/settings/mail",
|
||||
storage: "/admin/settings/storage",
|
||||
filter: "/admin/settings/filter",
|
||||
maintenance: "/admin/settings/maintenance",
|
||||
};
|
||||
|
||||
/** /admin/settings 与旧 ?section= 统一跳到子路由 */
|
||||
export default async function SettingsIndexPage({ searchParams }: PageProps) {
|
||||
const sp = await searchParams;
|
||||
const raw = typeof sp.section === "string" ? sp.section.trim() : "";
|
||||
redirect(LEGACY[raw] || "/admin/settings/basic");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user