Stressfrei-Adressen: zusätzliche Weiterleitungsziele
Pro StressfreiEmail können jetzt weitere Weiterleitungs-Adressen
gepflegt werden, die zusätzlich zur Stamm-E-Mail des Kunden und
zur globalen Default-Forward-Adresse an den Provider gepusht werden.
- Schema: StressfreiEmail.additionalForwardingEmails (TEXT/JSON-
Array), Migration mit IF NOT EXISTS.
- syncForwardingForEmail liest die Zusatzliste mit und filtert
Duplikate gegen customer.email + config.defaultForwardEmail
(case-insensitive) raus.
- Neuer Endpoint PUT /api/stressfrei-emails/:id/additional-forwards
mit Body { emails: string[] } – ersetzt die Liste komplett und
syncht den Provider direkt nach. Hard-Cap 20 Adressen, Format-
Validation per Regex, Audit-Log.
- Frontend: Button "Weitere Weiterleitungen" im Edit-Modus des
StressfreiEmailModals (erscheint sobald die Adresse beim Provider
vorhanden ist). Sub-Modal mit Liste + Add/Remove, Änderungen
gehen sofort live.
This commit is contained in:
@@ -97,6 +97,21 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
|
||||
## ✅ Erledigt
|
||||
|
||||
- [x] **🆕 Stressfrei-Wechseln-Adressen: zusätzliche Weiterleitungsziele**
|
||||
- Neues Feld `StressfreiEmail.additionalForwardingEmails` (Text/
|
||||
JSON-Array), Migration `20260608100000_stressfrei_email_additional_forwards`
|
||||
mit `IF NOT EXISTS`.
|
||||
- `syncForwardingForEmail` zieht die zusätzlichen Adressen mit
|
||||
in die Plesk-`set:`-Liste ein (case-insensitive Dedup gegen
|
||||
`customer.email` und `config.defaultForwardEmail`).
|
||||
- Neuer Endpoint `PUT /api/stressfrei-emails/:id/additional-forwards`
|
||||
mit Body `{ emails: string[] }` – ersetzt die Liste und syncht
|
||||
direkt mit dem Provider. Hard-Cap 20 Adressen, Format-Check per
|
||||
Regex, Audit-Log.
|
||||
- Im StressfreiEmailModal neuer „Weitere Weiterleitungen"-Button
|
||||
(Edit-Modus + `providerStatus === exists`) öffnet ein Sub-Modal
|
||||
mit Liste + Add/Remove. Jede Änderung geht sofort live.
|
||||
|
||||
- [x] **🐞 Modal-Felder ließen sich nicht editieren (Zähler/Bankkarte/Ausweis/Zählerstand)**
|
||||
- Vier identische Vorkommen desselben Anti-Patterns wie beim
|
||||
AddressModal-Fix von 2026-06-03: `setFormData(getInitialFormData())`
|
||||
|
||||
Reference in New Issue
Block a user