Files
OpenFlare/frontend/app/(main)/admin/layout.tsx
T
2026-06-08 20:34:27 +08:00

36 lines
791 B
TypeScript

"use client"
import { AdminUsersProvider } from "@/contexts/admin-users-context"
import { useUser } from "@/contexts/user-context"
import { LoadingPage } from "@/components/layout/loading"
import { ErrorPage } from "@/components/layout/error"
export default function AdminLayout({
children,
}: {
children: React.ReactNode
}) {
const { user, loading } = useUser()
/* 等待用户信息加载完成 */
if (loading) {
return <LoadingPage text="管理后台" badgeText="管理" />
}
/* 权限检查:只有管理员才能访问 */
if (!user?.is_admin) {
return (
<ErrorPage
title="访问被拒绝"
message="您没有权限访问此页面"
/>
)
}
return (
<AdminUsersProvider>
{children}
</AdminUsersProvider>
)
}