Aktueller Stand

This commit is contained in:
2026-01-18 00:40:01 +01:00
parent 68b63b8f06
commit 31aef02558
16 changed files with 352 additions and 43 deletions

View File

@@ -140,11 +140,20 @@ export default function AdminUserApprovals({ role }: AdminUserApprovalsProps) {
setEditingUser(null);
};
const removeUser = async (user: UserItem) => {
const ok = window.confirm(`Benutzer ${user.email} deaktivieren?`);
const removeUser = async (user: UserItem, mode: "disable" | "delete" = "disable") => {
if (mode === "delete" && !isSuperAdmin) {
setError("Nur Superadmins können Benutzer endgültig löschen.");
return;
}
const ok = window.confirm(
mode === "delete"
? `Benutzer ${user.email} endgültig löschen? Alle Daten werden entfernt.`
: `Benutzer ${user.email} deaktivieren?`
);
if (!ok) return;
const response = await fetch(`/api/users?id=${user.id}`, {
const hardParam = mode === "delete" ? "&hard=true" : "";
const response = await fetch(`/api/users?id=${user.id}${hardParam}`, {
method: "DELETE"
});
@@ -154,7 +163,7 @@ export default function AdminUserApprovals({ role }: AdminUserApprovalsProps) {
return;
}
setStatus("Benutzer deaktiviert.");
setStatus(mode === "delete" ? "Benutzer gelöscht." : "Benutzer deaktiviert.");
loadPending();
loadAll();
};
@@ -303,8 +312,8 @@ export default function AdminUserApprovals({ role }: AdminUserApprovalsProps) {
</IconButton>
)}
<IconButton
label="Deaktivieren"
onClick={() => removeUser(user)}
label={isSuperAdmin ? "Löschen" : "Deaktivieren"}
onClick={() => removeUser(user, isSuperAdmin ? "delete" : "disable")}
>
<IconTrash />
</IconButton>