/* eslint-disable @next/next/no-img-element */ import Head from "next/head"; import { withIronSessionSsr } from "iron-session/next"; import { sessionOptions } from "@/lib/session"; import { shouldRedirectHome } from "@/utils/navigation.disabled"; import { Permission } from "@/interfaces/permissions"; import { getPermissionDocs } from "@/utils/permissions.be"; import { User } from "@/interfaces/user"; import { LayoutContext } from "@/components/High/Layout"; import PermissionList from "@/components/PermissionList"; import { requestUser } from "@/utils/api"; import { redirect } from "@/utils"; import React from "react"; export const getServerSideProps = withIronSessionSsr(async ({ req, res }) => { const user = await requestUser(req, res); if (!user) return redirect("/login"); if (shouldRedirectHome(user)) return redirect("/"); // Fetch data from external API const permissions: Permission[] = await getPermissionDocs(); const filteredPermissions = permissions.filter((p) => { const permissionType = p.type.toString().toLowerCase(); if (user.type === "corporate") return ( !permissionType.includes("corporate") && !permissionType.includes("admin") ); if (user.type === "mastercorporate") return ( !permissionType.includes("mastercorporate") && !permissionType.includes("admin") ); return true; }); // const res = await fetch("api/permissions"); // const permissions: Permission[] = await res.json(); // Pass data to the page via props return { props: { // permissions: permissions.map((p) => ({ id: p.id, type: p.type })), permissions: filteredPermissions.map((p) => { const { users, ...rest } = p; return rest; }), user, }, }; }, sessionOptions); interface Props { permissions: Permission[]; user: User; } export default function Page(props: Props) { const { permissions, user } = props; const { setClassName } = React.useContext(LayoutContext); React.useEffect(() => setClassName("gap-6"), [setClassName]); return ( <> EnCoach <>

Permissions

); }