diff --git a/src/app/[locale]/(private)/accept-honor/page.tsx b/src/app/[locale]/(private)/accept-honor/page.tsx index b5c4f171..677924ff 100644 --- a/src/app/[locale]/(private)/accept-honor/page.tsx +++ b/src/app/[locale]/(private)/accept-honor/page.tsx @@ -35,7 +35,7 @@ export default function CodeOfHonorAlert() { return; } setUser(res); - router.refresh(); + router.push('/'); }; return ( diff --git a/src/middleware.ts b/src/middleware.ts index a88094e5..7860ab56 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -81,18 +81,21 @@ const authMiddleware = (request: NextRequest) => { }; const CoHMiddleware = async (request: NextRequest) => { - const user = await getUserDetails(); - const hasAcceptedCoH = Boolean(user?.codeOfHonorSignDate && user?.studentProfile); + try { + const user = await getUserDetails(); + const hasAcceptedCoH = !!user?.codeOfHonorSignDate; - if (!hasAcceptedCoH && !isAcceptHonorPath(request)) { - return redirectWithIntl(request, '/accept-honor'); - } + if (!hasAcceptedCoH && !isAcceptHonorPath(request)) { + return redirectWithIntl(request, '/accept-honor'); + } - if (hasAcceptedCoH && isAcceptHonorPath(request)) { - return redirectWithIntl(request, '/'); + if ((!user?.studentProfile || hasAcceptedCoH) && isAcceptHonorPath(request)) { + return redirectWithIntl(request, '/'); + } + } catch (error) { + return null; } - - return null; + return intlMiddleware(request); }; export async function middleware(request: NextRequest) {