'use server' import { cookies } from 'next/headers' import { revalidatePath } from 'next/cache' import { erfordereBenutzer, meineBetreuten, COOKIE_AKTIVE_BETREUTE } from '@/lib/auth/sitzung' /** * Wechselt die aktive betreute Person. * * Die Auswahl wird nur gesetzt, wenn der Benutzer auf diese Person auch * Zugriff hat - sonst liesse sich ueber ein manipuliertes Cookie fremde * Daten anzeigen. */ export async function betreuteWechseln(betreuteId: string): Promise { const benutzer = await erfordereBenutzer() const erlaubt = await meineBetreuten(benutzer) if (!erlaubt.some((b) => b.id === betreuteId)) { throw new Error('Kein Zugriff auf diese betreute Person.') } const keks = await cookies() keks.set(COOKIE_AKTIVE_BETREUTE, betreuteId, { httpOnly: true, sameSite: 'lax', secure: process.env.NODE_ENV === 'production', path: '/', maxAge: 60 * 60 * 24 * 365, }) revalidatePath('/', 'layout') }