import { createAdminClient } from '@/lib/supabase/admin'; import { User } from '@supabase/supabase-js'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card'; import { RoleSelect } from './RoleSelect'; export default async function RolesPage() { const supabase = createAdminClient(); let users: User[] = []; let errorMsg = ''; try { if (!process.env.SUPABASE_SERVICE_ROLE_KEY) { throw new Error("SUPABASE_SERVICE_ROLE_KEY is missing in .env.local"); } const { data, error } = await supabase.auth.admin.listUsers(); if (error) throw error; users = data.users || []; } catch (e: any) { console.error("Error fetching users:", e); errorMsg = e.message; } return (

Roles Management

User Roles {errorMsg ? (
Error: {errorMsg}.
Make sure SUPABASE_SERVICE_ROLE_KEY is set in .env.local
) : ( Email Role Status {users.map((user) => { const role = user.app_metadata?.role || 'user'; return ( {user.email} {user.confirmed_at ? ( Confirmed ) : ( Pending )} ); })} {users.length === 0 && ( No users found. )}
)}
); }