|
- import { I18nProvider } from "@/i18n";
- import { authOptions } from "@/config/authConfig";
- import { AUTH, hasAbility } from "@/authorities";
- import { getServerSession } from "next-auth";
- import { redirect } from "next/navigation";
-
- /** Route board and shop/truck lane pages: ADMIN or 車線 (TRUCK_LANE). */
- export default async function ShopSettingsLayout({
- children,
- }: {
- children: React.ReactNode;
- }) {
- const session = await getServerSession(authOptions);
- const abilities = session?.user?.abilities ?? [];
- const canAccess =
- hasAbility(abilities, AUTH.TRUCK_LANE) || hasAbility(abilities, AUTH.ADMIN);
-
- if (!canAccess) {
- redirect("/dashboard");
- }
-
- return (
- <I18nProvider namespaces={["shop", "navigation", "common"]}>
- {children}
- </I18nProvider>
- );
- }
|