From 8d9388ca9a94e0dcbd2208053b1ceeb410564e8d Mon Sep 17 00:00:00 2001 From: Matthias Hochmeister Date: Fri, 13 Mar 2026 14:50:59 +0100 Subject: [PATCH] update --- frontend/src/pages/MitgliedDetail.tsx | 32 +++++++++++++++++++++------ 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/frontend/src/pages/MitgliedDetail.tsx b/frontend/src/pages/MitgliedDetail.tsx index a602f69..dd0785a 100644 --- a/frontend/src/pages/MitgliedDetail.tsx +++ b/frontend/src/pages/MitgliedDetail.tsx @@ -265,13 +265,31 @@ function MitgliedDetail() { setSaving(true); setSaveError(null); try { - const payload: UpdateMemberProfileData = { - ...formData, - eintrittsdatum: formData.eintrittsdatum ? fromGermanDate(formData.eintrittsdatum) || undefined : undefined, - austrittsdatum: formData.austrittsdatum ? fromGermanDate(formData.austrittsdatum) || undefined : undefined, - geburtsdatum: formData.geburtsdatum ? fromGermanDate(formData.geburtsdatum) || undefined : undefined, - dienstgrad_seit: formData.dienstgrad_seit ? fromGermanDate(formData.dienstgrad_seit) || undefined : undefined, - }; + let payload: UpdateMemberProfileData; + + if (canWrite) { + // Admin / Kommandant: send all fields with date conversion + payload = { + ...formData, + eintrittsdatum: formData.eintrittsdatum ? fromGermanDate(formData.eintrittsdatum) || undefined : undefined, + austrittsdatum: formData.austrittsdatum ? fromGermanDate(formData.austrittsdatum) || undefined : undefined, + geburtsdatum: formData.geburtsdatum ? fromGermanDate(formData.geburtsdatum) || undefined : undefined, + dienstgrad_seit: formData.dienstgrad_seit ? fromGermanDate(formData.dienstgrad_seit) || undefined : undefined, + }; + } else { + // Regular member (own profile): only send fields allowed by SelfUpdateMemberProfileSchema + payload = { + telefon_mobil: formData.telefon_mobil, + telefon_privat: formData.telefon_privat, + notfallkontakt_name: formData.notfallkontakt_name, + notfallkontakt_telefon: formData.notfallkontakt_telefon, + tshirt_groesse: formData.tshirt_groesse, + schuhgroesse: formData.schuhgroesse, + bild_url: formData.bild_url, + fdisk_standesbuch_nr: formData.fdisk_standesbuch_nr, + }; + } + const updated = await membersService.updateMember(userId, payload); setMember(updated); setEditMode(false);