fix(invoice): Befunde aus dem Sicherheitsreview
Docker Image bauen und veroeffentlichen / build-and-push (push) Successful in 9m45s
Docker Image bauen und veroeffentlichen / build-and-push (push) Successful in 9m45s
- E-Rechnung: in XML verbotene Steuerzeichen aus Namen/Anschriften entfernen, sonst waere das eingebettete XML bei einem einzigen Zeichen ungueltig. - Rechnungskopie: genau eine Adresse; eine Liste ([email protected],[email protected]) wird beim Speichern abgelehnt und nie an nodemailer gegeben. - Hinweis bei fehlgeschlagener Stornorechnung korrigiert (ein erneutes Stornieren ist nicht moeglich, die Stripe-Erstattung holt sie nach). Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
1 parent
2995890b07
commit
4827c8fa61
6 files changed
+21
-3
No files matched your search
@@ -67,7 +67,8 @@ export async function updateSiteContentAction(formData: FormData): Promise<void>
|
||||
}
|
||||
// Die Rechnungskopie geht an genau diese Adresse: leer (keine Kopie) oder
|
||||
// eine echte Adresse, sonst verschwaenden die Kopien stillschweigend.
|
||||
if (def.key === INVOICE_COPY_KEY && valueDe.trim() !== "" && normalizeContactEmail(valueDe) === null) {
|
||||
// Genau eine Adresse: "[email protected], [email protected]" waere fuer nodemailer eine Liste.
|
||||
if (def.key === INVOICE_COPY_KEY && valueDe.trim() !== "" && !/^[^,;]+$/.test(normalizeContactEmail(valueDe) ?? "")) {
|
||||
return fail(
|
||||
settingsPathForGroup(group),
|
||||
"„Rechnungskopie an“ ist keine gültige E-Mail-Adresse. Bitte z. B. [email protected] eintragen oder das Feld leer lassen."
|
||||
|
||||
@@ -328,7 +328,7 @@ export async function updateOrderStatusAction(formData: FormData): Promise<void>
|
||||
await issueCancellationInvoice(orderId, "STORNIERUNG");
|
||||
} catch (error: unknown) {
|
||||
console.error(`[order-cancel] Stornorechnung fuer ${result.orderNumber} fehlgeschlagen:`, error);
|
||||
stornoWarnings.push("Die Stornorechnung konnte nicht erstellt werden — bitte die Stornierung erneut auslösen oder den Support informieren.");
|
||||
stornoWarnings.push("Die Stornorechnung konnte nicht erstellt werden. Sie entsteht spätestens mit der Stripe-Erstattung; sonst bitte den Support informieren.");
|
||||
}
|
||||
|
||||
if (stornoWarnings.length > 0) {
|
||||
|
||||
Reference in new issue
Block a user