diff --git a/src/pages/index.tsx b/src/pages/index.tsx index c7c1c89..4fe6c5d 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,7 +1,17 @@ import Head from "next/head"; +import { type GetServerSideProps } from "next"; +import { getServerAuthSession } from "~/server/auth"; import { Layout } from "~/components/Layout"; +export const getServerSideProps: GetServerSideProps = async (ctx) => { + const session = await getServerAuthSession(ctx); + + if (!session) return { redirect: { destination: '/api/auth/signin', permanent: false } }; + + return { props: { session } }; +} + export default function Home() { return ( <> diff --git a/src/pages/training/[slug].tsx b/src/pages/training/[slug].tsx index f190937..4b2481f 100644 --- a/src/pages/training/[slug].tsx +++ b/src/pages/training/[slug].tsx @@ -5,18 +5,22 @@ import Link from "next/link"; import { formatCurrency } from "~/lib/currency/formatter"; +import { getServerAuthSession } from "~/server/auth"; import { prisma } from "~/server/db"; import { Training } from "lib/content/training"; import { Layout } from "~/components/Layout"; // import { Button } from "~/components/Button"; -export const getServerSideProps: GetServerSideProps = async (context) => { - const trainingSlug = context.query.slug as string; +export const getServerSideProps: GetServerSideProps = async (ctx) => { + const session = await getServerAuthSession(ctx); + if (!session) return { redirect: { destination: '/api/auth/signin', permanent: false } }; + + const trainingSlug = ctx.query.slug as string; const training = await prisma.training.findUnique({ where: { slug: trainingSlug }}); if (!training) return { notFound: true }; - return { props: { training: training } }; + return { props: { training: training, session } }; } function Detail({ training }: { training: any }) { diff --git a/src/pages/trainings.tsx b/src/pages/trainings.tsx index 2a04cf5..c323ee0 100644 --- a/src/pages/trainings.tsx +++ b/src/pages/trainings.tsx @@ -4,12 +4,17 @@ import Link from "next/link"; import { formatCurrency } from "~/lib/currency/formatter"; +import { getServerAuthSession } from "~/server/auth"; import { prisma } from "~/server/db"; import { Training } from "lib/content/training"; import { Layout } from "~/components/Layout"; import { Button } from "~/components/Button"; -export const getServerSideProps: GetServerSideProps = async ({ req, res }) => { +export const getServerSideProps: GetServerSideProps = async (ctx) => { + const session = await getServerAuthSession(ctx); + + if (!session) return { redirect: { destination: '/api/auth/signin', permanent: false } }; + const trainings = await prisma.training.findMany({ select: { id: true, @@ -21,7 +26,7 @@ export const getServerSideProps: GetServerSideProps = async ({ req, res }) => { priceCorporate: true, } }); - return { props: { trainings: trainings } }; + return { props: { trainings: trainings, session } }; } function Table({trainings}: { trainings: Training[] }) {