diff --git a/lib/authenticate.ts b/lib/authenticate.ts index fbd4372..7eeea35 100644 --- a/lib/authenticate.ts +++ b/lib/authenticate.ts @@ -9,7 +9,8 @@ export async function authenticate(key: string) { id: true, firstName: true, lastName: true, - isTeacher: true + isTeacher: true, + isAdmin: true }, where: { key: key @@ -26,24 +27,26 @@ export const authOptions: NextAuthOptions = { strategy: "jwt", }, callbacks: { - async jwt({ token, user }) { - if (user) { - token.userId = parseInt(user.id as string); - token.firstName = user.firstName; - token.lastName = user.lastName; - token.isTeacher = user.isTeacher; - } - return token; - }, - async session({ session, token, user }) { - if(token) { - session.user.id = token.userId; - session.user.firstName = token.firstName; - session.user.lastName = token.lastName; - session.user.isTeacher = token.isTeacher; - } - return session; - }, + async jwt({ token, user }) { + if (user) { + token.userId = parseInt(user.id as string); + token.firstName = user.firstName; + token.lastName = user.lastName; + token.isTeacher = user.isTeacher; + token.isAdmin = user.isAdmin; + } + return token; + }, + async session({ session, token, user }) { + if(token) { + session.user.id = token.userId; + session.user.firstName = token.firstName; + session.user.lastName = token.lastName; + session.user.isTeacher = token.isTeacher; + session.user.isAdmin = token.isAdmin; + } + return session; + }, }, pages: { signIn: '/', diff --git a/types/next-auth.d.ts b/types/next-auth.d.ts index 5b2fe1c..c095778 100644 --- a/types/next-auth.d.ts +++ b/types/next-auth.d.ts @@ -8,6 +8,7 @@ declare module "next-auth" { firstName: string; lastName: string isTeacher: boolean; + isAdmin: boolean; } & DefaultSession["user"]; } interface User { @@ -15,6 +16,7 @@ declare module "next-auth" { firstName: string; lastName: string isTeacher: boolean; + isAdmin: boolean; } } @@ -24,5 +26,6 @@ declare module "next-auth/jwt" { firstName: string; lastName: string isTeacher: boolean; + isAdmin: boolean; } } \ No newline at end of file