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; }