feat: 管理端板块管理与旧版数据导入,补充部署运营文档
- 新增管理端板块管理页面与后端接口(admin_board) - 新增旧版数据导入:legacyimport 服务、导入面板、importusers 命令行工具 - 聊天用户卡片、板块图标等 UI 组件与界面优化 - 补充 about/公告/1Panel 部署等文档 - gitignore 排除 dist/ 构建产物与 .agents/ 本地工具目录
This commit is contained in:
33
frontend/app/admin/boards/page.tsx
Normal file
33
frontend/app/admin/boards/page.tsx
Normal file
@@ -0,0 +1,33 @@
|
||||
import type { Metadata } from "next";
|
||||
import { cookies } from "next/headers";
|
||||
import { authCookieHeader } from "@/lib/cookies";
|
||||
import { fetchAdminBoards, type AdminBoard } from "@/lib/api";
|
||||
import { getMeCached } from "@/lib/serverData";
|
||||
import { isOwner } from "@/lib/roles";
|
||||
import Forbidden from "../Forbidden";
|
||||
import BoardsAdmin from "./BoardsAdmin";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "板块管理",
|
||||
};
|
||||
|
||||
export default async function AdminBoardsPage() {
|
||||
const cookie = authCookieHeader(await cookies());
|
||||
const me = await getMeCached(cookie || undefined);
|
||||
|
||||
// 仅站长可管理板块
|
||||
if (!me.user || !isOwner(me.user.role)) {
|
||||
return <Forbidden text="板块管理仅站长可操作。" />;
|
||||
}
|
||||
|
||||
let initial: AdminBoard[] | null = null;
|
||||
let initError = "";
|
||||
try {
|
||||
const r = await fetchAdminBoards(cookie || undefined);
|
||||
initial = r.boards ?? [];
|
||||
} catch (e) {
|
||||
initError = e instanceof Error ? e.message : "获取板块列表失败";
|
||||
}
|
||||
|
||||
return <BoardsAdmin initial={initial} initError={initError} />;
|
||||
}
|
||||
Reference in New Issue
Block a user