import Link from "next/link"; import { notFound } from "next/navigation"; import { ArrowLeft, Laptop } from "lucide-react"; import { MitarbeiterAktiv } from "@/components/mitarbeiter-aktiv"; import { MitarbeiterStammdaten } from "@/components/mitarbeiter-stammdaten"; import { MitarbeiterVorgesetzter } from "@/components/mitarbeiter-vorgesetzter"; import { Herkunft } from "@/generated/prisma/enums"; import { darf } from "@/server/auth/rollen"; import { sitzungErforderlich } from "@/server/auth/sitzungspflicht"; import { kundenEbeneSichtbar } from "@/server/mandant"; import { geraeteDesMitarbeiters, mitarbeiterHolen, moeglicheVorgesetzte, vorgesetzterVon, } from "@/server/queries/mitarbeiter"; /** * Die Seite einer Person (#011). * * Sie beantwortet drei Fragen: wer ist das, welche Geraete gehoeren ihr, und was * ist mit ihr passiert. Die Laufhistorie kommt mit #013 dazu — bis dahin steht * hier, dass sie kommt, statt eine leere Ueberschrift zu zeigen. */ export default async function MitarbeiterSeite({ params }: { params: Promise<{ id: string }> }) { const { id } = await params; const { benutzer } = await sitzungErforderlich("lesen", `/mitarbeiter/${id}`); const person = await mitarbeiterHolen(id, benutzer); // Nicht vorhanden und nicht sichtbar sind dieselbe Antwort – die // Unterscheidung waere schon eine Auskunft ueber fremde Kunden (#009). if (!person) notFound(); const darfBearbeiten = darf(benutzer.rolle, "mitarbeiterBearbeiten"); const [geraete, kundenEbene, vorgesetzter, auswahl] = await Promise.all([ geraeteDesMitarbeiters(person.id, benutzer), kundenEbeneSichtbar(), vorgesetzterVon(person.id, benutzer), // Nur holen, wer sie auch braucht: fuer einen Leser ist die Liste aller // Kolleginnen und Kollegen eine Abfrage ohne Zweck. darfBearbeiten ? moeglicheVorgesetzte(person.id, benutzer) : [], ]); return ( <> Alle Personen
Vorgesetzter:{" "} {vorgesetzter.anzeigename}
) : null} {darfBearbeiten ? (Dieser Person ist kein Gerät zugeordnet.
) : (Onboarding, Übergaben und Offboarding erscheinen hier chronologisch, sobald es Läufe gibt — sie kommen mit dem nächsten Meilenstein.