41 lines
821 B
TypeScript
41 lines
821 B
TypeScript
/* eslint-disable @next/next/no-img-element */
|
|
|
|
import {withIronSessionSsr} from "iron-session/next";
|
|
import {sessionOptions} from "@/lib/session";
|
|
import {shouldRedirectHome} from "@/utils/navigation.disabled";
|
|
import ExamPage from "./(exam)/ExamPage";
|
|
|
|
export const getServerSideProps = withIronSessionSsr(({req, res}) => {
|
|
const user = req.session.user;
|
|
|
|
if (!user || !user.isVerified) {
|
|
res.setHeader("location", "/login");
|
|
res.statusCode = 302;
|
|
res.end();
|
|
return {
|
|
props: {
|
|
user: null,
|
|
},
|
|
};
|
|
}
|
|
|
|
if (shouldRedirectHome(user)) {
|
|
res.setHeader("location", "/");
|
|
res.statusCode = 302;
|
|
res.end();
|
|
return {
|
|
props: {
|
|
user: null,
|
|
},
|
|
};
|
|
}
|
|
|
|
return {
|
|
props: {user: req.session.user},
|
|
};
|
|
}, sessionOptions);
|
|
|
|
export default function Page() {
|
|
return <ExamPage page="exams" />;
|
|
}
|