import { Link, useLoaderData } from "react-router"; import { requireAdmin } from "@/session.server"; import prisma from "@/lib/prisma.server"; import { UserPlus, Shield, User } from "lucide-react"; export async function loader({ request }: { request: Request }) { await requireAdmin(request); const users = await prisma.user.findMany({ orderBy: { createdAt: "asc" }, select: { id: true, email: true, username: true, name: true, role: true, createdAt: true, _count: { select: { companies: true } }, }, }); return { users: users.map((u) => ({ ...u, createdAt: u.createdAt.toISOString() })), }; } export default function AdminUsersPage() { const { users } = useLoaderData(); return (

Benutzerverwaltung

{users.length} Benutzer registriert

Neuer Benutzer
{users.map((user, i) => ( ))}
Name Benutzername E-Mail Rolle Firmen Erstellt
{user.name} {user.username} {user.email} {user.role === "ADMIN" ? ( Admin ) : ( Benutzer )} {user._count.companies} {new Date(user.createdAt).toLocaleDateString("de-DE")} Bearbeiten
); }