Admins verwalten Benutzer (anlegen, Rolle, sperren, Passwort setzen); jeder ändert sein Passwort; das Audit-Log ist filterbar einsehbar. Sperre und Passwortwechsel beenden ältere Sitzungen über Benutzer.sitzungenAb. Der letzte Admin und das eigene Konto sind geschützt. Closes #015 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
21 lines
735 B
TypeScript
21 lines
735 B
TypeScript
import { NextResponse } from "next/server";
|
||
import { aufruferAdresse } from "@/lib/adressen";
|
||
import { api, jsonLesen } from "@/server/api";
|
||
import { rechtErforderlich } from "@/server/auth/zugang";
|
||
import { benutzerAendern } from "@/server/services/benutzer";
|
||
|
||
type Kontext = { params: Promise<{ id: string }> };
|
||
|
||
/** `{ anzeigename?, email?, rolle?, aktiv? }` – Sperren beendet alle Sitzungen. */
|
||
export const PATCH = api(async (anfrage: Request, { params }: Kontext) => {
|
||
const aufrufer = await rechtErforderlich(anfrage, "benutzerVerwalten");
|
||
return NextResponse.json(
|
||
await benutzerAendern(
|
||
(await params).id,
|
||
await jsonLesen(anfrage),
|
||
aufrufer,
|
||
aufruferAdresse(anfrage.headers),
|
||
),
|
||
);
|
||
});
|