From 20043eef1717d41cd1f06b55330e00d1dd0b1d73 Mon Sep 17 00:00:00 2001 From: Sosokker Date: Mon, 16 Dec 2024 09:50:09 +0700 Subject: [PATCH] feat: role check on admin page --- src/app/admin/page.tsx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx index 5595fa6..dcc1095 100644 --- a/src/app/admin/page.tsx +++ b/src/app/admin/page.tsx @@ -3,10 +3,25 @@ import { createSupabaseClient } from "@/lib/supabase/serverComponentClient"; import BusinessTable from "./BusinessTable"; import { Separator } from "@/components/ui/separator"; import Link from "next/link"; +import { getUserRole } from "@/lib/data/userQuery"; +import { redirect } from "next/navigation"; export default async function AdminPage() { const client = createSupabaseClient(); const { data, error } = await getAllBusinesses(client); + const { data: userData, error: userDataError } = await client.auth.getUser(); + + if (userDataError) { + redirect("/"); + } + + const uid = userData.user!.id; + + const { data: userRoleData, error: userRoleError } = await getUserRole(client, uid); + + if (userRoleError || userRoleData!.role !== "admin") { + redirect("/"); + } if (error) { return
Error fetching businesses: {error.message}
;