--- import Layout from '../../layouts/Layout.astro'; import Header from '../../components/layout/Header'; import AdminSidebar from '../../components/admin/AdminSidebar'; const token = Astro.cookies.get('session')?.value; if (!token) return Astro.redirect('/login'); // Check admin role const meRes = await fetch(new URL('/api/auth/me', Astro.url).toString(), { headers: { 'Authorization': `Bearer ${token}` } }); const { user } = await meRes.json(); if (user?.role !== 'admin') return Astro.redirect('/'); // Fetch users const usersRes = await fetch(new URL('/api/admin/users', Astro.url).toString(), { headers: { 'Authorization': `Bearer ${token}` } }); const { users } = await usersRes.json(); const roleColors = { admin: 'bg-purple-100 text-purple-700', vendor: 'bg-blue-100 text-blue-700', customer: 'bg-gray-100 text-gray-700' }; const roleLabels = { admin: 'ผู้ดูแล', vendor: 'ร้านค้า', customer: 'ลูกค้า' }; ---

ผู้ใช้งานทั้งหมด

{users?.map(u => ( ))}
ผู้ใช้งาน อีเมล บทบาท สมัครเมื่อ จัดการ
{u.name?.charAt(0) || 'U'}
{u.name || 'ไม่ระบุ'}
{u.email} {roleLabels[u.role] || u.role} {new Date(u.created_at).toLocaleDateString('th-TH')} {u.role !== 'admin' && ( )}