FPSMS-frontend
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 

28 řádky
790 B

  1. import { I18nProvider } from "@/i18n";
  2. import { authOptions } from "@/config/authConfig";
  3. import { AUTH, hasAbility } from "@/authorities";
  4. import { getServerSession } from "next-auth";
  5. import { redirect } from "next/navigation";
  6. /** FP-MTMS Version Checklist | Functions Ref. No. 67 | v1.0.0 | 2026-08-13 */
  7. export default async function M18SyncLayout({
  8. children,
  9. }: {
  10. children: React.ReactNode;
  11. }) {
  12. const session = await getServerSession(authOptions);
  13. const abilities = session?.user?.abilities ?? [];
  14. const canAccess =
  15. hasAbility(abilities, AUTH.M18_SYNC) || hasAbility(abilities, AUTH.ADMIN);
  16. if (!canAccess) {
  17. redirect("/dashboard");
  18. }
  19. return (
  20. <I18nProvider namespaces={["m18Sync", "navigation", "common"]}>
  21. {children}
  22. </I18nProvider>
  23. );
  24. }