Passwort-Set: echte Fehlermeldung anzeigen statt Fallback

Der axios-Response-Interceptor packt die Backend-Meldung in
new Error(message) um und wirft .response weg. Der Catch-
Handler beim Passwort-Setzen las aber err.response.data.error
(nach dem Interceptor undefined) und fiel deshalb immer auf
"Passwort konnte nicht gesetzt werden" zurück.

Ergebnis: der Admin sah nie den echten Grund – typischerweise
"Passwort erfüllt Mindestanforderungen nicht: mindestens 25
Zeichen" oder "Eigenes Passwort ist falsch".

Fix: err.message lesen. Das ist genau der vom Interceptor
gesetzte String.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-07-03 09:17:02 +02:00
parent 4d3382b5a4
commit a3bdb3f467
+6 -1
View File
@@ -337,8 +337,13 @@ function UserModal({
}
updateMutation.mutate(updateData, {
onSuccess: () => {
// Der axios-Response-Interceptor wirft `.response` weg und
// legt die Backend-Meldung nach `err.message` deshalb hier
// nicht `err.response.data.error` lesen, sonst sieht der
// Admin nur den Fallback und weiß nicht, dass Staff-
// Passwörter min. 25 Zeichen + Sonderzeichen brauchen.
userApi.setPassword(user.id, formData.password, formData.currentPassword).catch((err) => {
alert(err?.response?.data?.error || 'Passwort konnte nicht gesetzt werden');
alert(err?.message || 'Passwort konnte nicht gesetzt werden');
});
},
});