import { createClient } from "@/utils/supabase/server"; import { redirect } from "next/navigation"; import { updateAdminRole, removeAdmin } from "./actions"; export default async function AdminUsersPage() { const supabase = await createClient(); // Verify current user is super_admin const { data: { user }, } = await supabase.auth.getUser(); if (!user) redirect("/admin/login"); const { data: currentAdmin } = await supabase .from("admin_users") .select("role") .eq("user_id", user.id) .single(); if (!currentAdmin || currentAdmin.role !== "super_admin") { redirect("/admin"); } const { data: adminUsers } = await supabase .from("admin_users") .select("id, user_id, email, role, created_at") .order("created_at"); return (
| Role | Added | Actions | |
|---|---|---|---|
| {adminUser.email} | {new Date(adminUser.created_at).toLocaleDateString()} |
{adminUser.user_id !== user.id && (
{(["editor", "admin", "super_admin"] as const)
.filter((r) => r !== adminUser.role)
.map((role) => (
))}
)}
|
No admin users found.
)}The user must first have a Supabase Auth account. Create one in the Supabase dashboard, then add their email here.