|
|
|
@@ -1,10 +1,23 @@ |
|
|
|
import { I18nProvider } from "@/i18n"; |
|
|
|
import { authOptions } from "@/config/authConfig"; |
|
|
|
import { AUTH } from "@/authorities"; |
|
|
|
import { getServerSession } from "next-auth"; |
|
|
|
import { redirect } from "next/navigation"; |
|
|
|
|
|
|
|
export default function ReportLayout({ |
|
|
|
export default async function ReportLayout({ |
|
|
|
children, |
|
|
|
}: { |
|
|
|
children: React.ReactNode; |
|
|
|
}) { |
|
|
|
const session = await getServerSession(authOptions); |
|
|
|
const abilities = session?.user?.abilities ?? []; |
|
|
|
const canAccess = |
|
|
|
abilities.includes(AUTH.REPORT_MGMT) || abilities.includes(AUTH.ADMIN); |
|
|
|
|
|
|
|
if (!canAccess) { |
|
|
|
redirect("/dashboard"); |
|
|
|
} |
|
|
|
|
|
|
|
return ( |
|
|
|
<I18nProvider namespaces={["report", "navigation", "common"]}> |
|
|
|
{children} |
|
|
|
|