From 6aea54884dacdd9da846844266b5ce3cb7d0c3d9 Mon Sep 17 00:00:00 2001 From: i701 Date: Thu, 26 Jun 2025 11:36:34 +0500 Subject: [PATCH] =?UTF-8?q?feat:=20add=20admin=20check=20for=20device=20an?= =?UTF-8?q?d=20payment=20pages;=20update=20session=20type=20to=20include?= =?UTF-8?q?=20is=5Fadmin=20property=20=E2=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/(dashboard)/devices/page.tsx | 2 ++ app/(dashboard)/payments/page.tsx | 9 ++++++++- app/next-auth.d.ts | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/(dashboard)/devices/page.tsx b/app/(dashboard)/devices/page.tsx index 7cce623..8874727 100644 --- a/app/(dashboard)/devices/page.tsx +++ b/app/(dashboard)/devices/page.tsx @@ -3,6 +3,7 @@ import { DevicesTable } from "@/components/devices-table"; import Search from "@/components/search"; import AddDeviceDialogForm from "@/components/user/add-device-dialog"; import { getServerSession } from "next-auth"; +import { redirect } from "next/navigation"; import React, { Suspense } from "react"; import DevicesTableSkeleton from "./device-table-skeleton"; @@ -17,6 +18,7 @@ export default async function Devices({ const query = (await searchParams)?.query || ""; const page = (await searchParams)?.page || 1; const session = await getServerSession(authOptions); + if (session?.user?.is_admin) return redirect("/user-devices"); return (
diff --git a/app/(dashboard)/payments/page.tsx b/app/(dashboard)/payments/page.tsx index 418293d..673dd8e 100644 --- a/app/(dashboard)/payments/page.tsx +++ b/app/(dashboard)/payments/page.tsx @@ -1,8 +1,11 @@ +import { authOptions } from "@/app/auth"; import { PaymentsTable } from "@/components/payments-table"; import Search from "@/components/search"; +import { getServerSession } from "next-auth"; +import { redirect } from "next/navigation"; import { Suspense } from "react"; -export default async function Devices({ +export default async function Payments({ searchParams, }: { searchParams: Promise<{ @@ -13,6 +16,10 @@ export default async function Devices({ }>; }) { const query = (await searchParams)?.query || ""; + const session = await getServerSession(authOptions); + if (!session?.user?.is_admin) { + return redirect("/user-payments"); + } return (
diff --git a/app/next-auth.d.ts b/app/next-auth.d.ts index 91dffdc..d34126b 100644 --- a/app/next-auth.d.ts +++ b/app/next-auth.d.ts @@ -25,6 +25,7 @@ declare module "next-auth" { last_login?: string; date_joined?: string; is_superuser?: boolean; + is_admin?: boolean; }; expires: ISODateString; }