From 203f98933891b89935299a0652b66a83fc417d65 Mon Sep 17 00:00:00 2001 From: oiov Date: Thu, 1 Aug 2024 19:27:05 +0800 Subject: [PATCH] upd: add revalidate --- app/(protected)/admin/loading.tsx | 3 +-- app/api/admin/route.ts | 13 +++++++++++++ components/layout/navbar.tsx | 4 +++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/(protected)/admin/loading.tsx b/app/(protected)/admin/loading.tsx index 296546a..afab127 100644 --- a/app/(protected)/admin/loading.tsx +++ b/app/(protected)/admin/loading.tsx @@ -14,8 +14,7 @@ export default function AdminPanelLoading() { - - + ); diff --git a/app/api/admin/route.ts b/app/api/admin/route.ts index 686374e..32317b6 100644 --- a/app/api/admin/route.ts +++ b/app/api/admin/route.ts @@ -1,7 +1,20 @@ import { prisma } from "@/lib/db"; +import { checkUserStatus } from "@/lib/dto/user"; +import { getCurrentUser } from "@/lib/session"; + +export const revalidate = 60; export async function GET(req: Request) { try { + const user = checkUserStatus(await getCurrentUser()); + if (user instanceof Response) return user; + if (user.role !== "ADMIN") { + return Response.json("Unauthorized", { + status: 401, + statusText: "Unauthorized", + }); + } + const threeMonthsAgo = new Date(); threeMonthsAgo.setMonth(threeMonthsAgo.getMonth() - 3); diff --git a/components/layout/navbar.tsx b/components/layout/navbar.tsx index e616e78..f2e3519 100644 --- a/components/layout/navbar.tsx +++ b/components/layout/navbar.tsx @@ -107,7 +107,9 @@ export function NavBar({ scroll = false }: NavBarProps) { href="/dashboard" className="hidden text-sm font-medium text-foreground/60 transition-colors hover:text-foreground/80 md:block" > - Dashboard +