Plesk-Sync: del/add-Diff statt nicht-existierendem set:

Follow-up zu a83358b/24e152b. plesk bin mail --help auf Prod zeigt:
- -forwarding-addresses akzeptiert NUR add: und del:, kein set:
  → unser set:-Befehl wurde silent verworfen, Sync hatte nie
  Wirkung.
- -mailgroup als Option existiert gar nicht. Plesk nutzt -forwarding
  als Mailgroup-Schalter (im --info als "Mailgroup:" ausgegeben, im
  CLI als "-forwarding" gesetzt). Mein vorheriges -mailgroup false
  triggerte "Unrecognized option".

updateForwardTargets jetzt:
1. Aktuelle Members aus emailExists holen
2. Diff: toRemove = current \ targets, toAdd = targets \ current
   (case-insensitive)
3. Wenn toRemove: --update -forwarding-addresses del:<liste>
4. Wenn toAdd:    --update -forwarding true -forwarding-addresses add:<liste>

Idempotent, weil add/del Duplikate bzw. nicht-existente ignorieren.

Smoke-Test mit Prod-Stand (3 Bestands-Members + 1 neuer Eintrag):
nichts entfernt, nur bzirks@gmx.de hinzugefügt.
This commit is contained in:
2026-06-18 18:16:57 +02:00
parent 2becf6cb6a
commit 194c86409f
2 changed files with 71 additions and 27 deletions
+17
View File
@@ -97,6 +97,23 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
## ✅ Erledigt
- [x] **🐞 Plesk-Sync: `-forwarding-addresses set:` existiert gar nicht**
- Folge-Bug nach `a83358b`/`24e152b`: Sync verändert Plesk weiterhin
nicht. `plesk bin mail --help` zeigt: `-forwarding-addresses`
akzeptiert ausschließlich `add:` und `del:` unser `set:` wurde
von Plesk silent verworfen. Außerdem gibt es keine separate
`-mailgroup`-Option; was Plesk im `--info` als `Mailgroup: true`
zeigt, ist genau das, was `-forwarding true` in der CLI setzt
(doppelt benannt). Mein vorheriges `-mailgroup false` lief auf
den Phantom-Parameter und triggerte `Unrecognized option`.
- `updateForwardTargets` baut jetzt den Diff: aktuelle Mailgroup-
Members (aus `emailExists`) gegen Soll-Liste; `del:<entfernt>` +
`add:<neu>` in zwei separaten CLI-Calls. Idempotent.
Case-insensitive `Bruns.Gerhard``bruns.gerhard`.
- Phantom-`-mailgroup`-Parameter entfernt.
- Smoke-Test gegen Prod-Stand (3 Bestands-Members + 1 neuer Eintrag):
nichts entfernt, nur `bzirks@gmx.de` hinzugefügt.
- [x] **🔒 Pentest 83.1-83.3: Auto-Import-Pfad härten**
- **83.1 MEDIUM:** Auto-Import in `syncForwardingForEmail` umging
`assertValidForwardingEmail`. Plesk-Member wie `attacker@plesk.internal`