diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx
index 1ea4753..e0b56e6 100644
--- a/app/dashboard/page.tsx
+++ b/app/dashboard/page.tsx
@@ -1,17 +1,19 @@
import prisma from '@/lib/prisma';
import ActiveCard from './ActiveCard';
import { getAuthServerSession } from '@/lib/authenticate';
+import { red } from 'next/dist/lib/picocolors';
+import { redirect } from 'next/navigation';
export default async function Dashboard() {
+ const authSession = await getAuthServerSession();
+ console.log(authSession);
+ if (!authSession || !authSession.user.isTeacher) return redirect('/');
+
const tests = await prisma.test.findMany({ select: { isActive: true, isPassed: true, id: true, testOf: { select: { id: true, firstName: true, lastName: true, isTeacher: true } } } });
const activeTests = tests.filter((test) => test.isActive);
const passedTests = tests.filter((test) => test.isPassed);
- const authSession = await getAuthServerSession();
-
- console.log(authSession);
-
return (
Dashboard
diff --git a/app/play/page.tsx b/app/play/page.tsx
index 709cb7a..2c602aa 100644
--- a/app/play/page.tsx
+++ b/app/play/page.tsx
@@ -5,9 +5,9 @@ import { useRouter } from 'next/navigation';
import { useState, useEffect } from 'react';
import useSWR from 'swr';
import { fetcher } from '@/lib/fetcher';
-import Image from "next/image";
-import Logo from "/images/logo.svg";
-import LogOut from "@images/logout.svg";
+import Image from 'next/image';
+import Logo from '/images/logo.svg';
+import LogOut from '@images/logout.svg';
export default function Play() {
const router = useRouter();
@@ -15,17 +15,17 @@ export default function Play() {
const { data, error, isLoading } = useSWR('/api/test?key=' + password, fetcher);
- useEffect(() => {
- const pass = localStorage.getItem('@password');
- setPassword(pass);
- if (!pass) {
- router.push('/');
- }
- }, [router]);
+ // useEffect(() => {
+ // const pass = localStorage.getItem('@password');
+ // setPassword(pass);
+ // if (!pass) {
+ // router.push('/');
+ // }
+ // }, [router]);
return (
-
-
+
+
{data && data.status == 200 && password &&
}
@@ -35,7 +35,7 @@ export default function Play() {
router.push('/');
}}
>
-
+
diff --git a/components/custom/testCard.tsx b/components/custom/testCard.tsx
index 68d4001..754d420 100644
--- a/components/custom/testCard.tsx
+++ b/components/custom/testCard.tsx
@@ -1,49 +1,49 @@
'use client';
-import Calendar from "../../images/date.svg";
-import Image from "next/image";
+import Calendar from '../../images/date.svg';
+import Image from 'next/image';
-import { Ban, Snowflake, CircleOff } from "lucide-react";
+import { Ban, Snowflake, CircleOff } from 'lucide-react';
export function TestCard({ data, error, isLoading }: { data: any; error: any; isLoading: boolean }) {
- console.log(data);
+ //console.log(data);
if (isLoading)
return (
-
-
-
-
-
Chargement
+
);
if (error)
return (
-
-
-
-
- Erreur
+
);
if (data.status == 404)
return (
-
-
-
-
- Pas de test
+
);
return (
-
-
-
-
{new Date().getDate()}
-
{data.testOf.firstName}
+
+
+
+ {new Date().getDate()}
+ {data.testOf.firstName}
);
diff --git a/lib/authenticate.ts b/lib/authenticate.ts
index 409f9aa..e7c56b1 100644
--- a/lib/authenticate.ts
+++ b/lib/authenticate.ts
@@ -30,7 +30,7 @@ export const authOptions: NextAuthOptions = {
callbacks: {
async jwt({ token, user }) {
if (user) {
- token.userId = user.id;
+ token.userId = parseInt(user.id as string);
token.firstName = user.firstName;
token.lastName = user.lastName;
token.isTeacher = user.isTeacher;
@@ -38,10 +38,12 @@ export const authOptions: NextAuthOptions = {
return token;
},
async session({ session, token, user }) {
- session.user.id = token.userId;
- session.user.firstName = token.firstName;
- session.user.lastName = token.lastName;
- session.user.isTeacher = token.isTeacher;
+ if(token) {
+ session.user.id = token.userId;
+ session.user.firstName = token.firstName;
+ session.user.lastName = token.lastName;
+ session.user.isTeacher = token.isTeacher;
+ }
return session;
},
},
diff --git a/types/next-auth.d.ts b/types/next-auth.d.ts
index e139bbc..5b2fe1c 100644
--- a/types/next-auth.d.ts
+++ b/types/next-auth.d.ts
@@ -2,13 +2,13 @@ import NextAuth, { DefaultSession, DefaultJWT, DefaultUser } from "next-auth";
import { JWT } from "next-auth/jwt";
declare module "next-auth" {
- interface Session extends Omit
{
+ interface Session {
user: {
id: number;
firstName: string;
lastName: string
isTeacher: boolean;
- };
+ } & DefaultSession["user"];
}
interface User {
id: number;