fix(260923-ku6): Verbindungstest prueft Formularwerte statt gespeicherten Stand
Nachbesserung aus dem Browser-Rundgang zu 260923-dhh (Befund 1): "Verbindung testen" pruefte bislang immer den in der Datenbank gespeicherten Server, nicht das ungespeicherte Formular. Eine im Formular abgeschaltete Zertifikatspruefung oder ein neu eingetipptes Token-Geheimnis wurden dadurch beim Test ignoriert und erst nach "Speichern" wirksam — eine Falle fuer genau den Ablauf, den Nutzer instinktiv waehlen (eintippen, testen, dann erst speichern). Neues `TestProxmoxServerDto` plus Merge-Baustein `resolveEffectiveTestServer` in `ProxmoxService`: normale Felder folgen dem Formular (auch wenn absichtlich geleert), Geheimnisfelder folgen der bestehenden "leer -> gespeicherten Wert behalten"-Regel, weil `ServerForm` sie beim Laden nie aus der Datenbank vorbefuellt. Neue Route `POST servers/test` (ohne `:id`) deckt die Neuanlage ab, wo es noch keinen gespeicherten Server gibt. Der Testen-Knopf steht jetzt immer zur Verfuegung, nicht mehr nur nach dem ersten Speichern. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -147,3 +147,17 @@ export class UpdateProxmoxServerDto {
|
||||
@IsOptional()
|
||||
isActive?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* DTO fuer den Verbindungstest (Nachbesserung Befund 1, Rundgang zu Aufgabe 4):
|
||||
* derselbe Feldsatz wie `UpdateProxmoxServerDto` — der Test soll auf JEDEM
|
||||
* dieser Felder den ungespeicherten Formularwert pruefen koennen, nicht den
|
||||
* gespeicherten Stand. Ein NICHT gesendetes oder leeres Geheimnisfeld heisst
|
||||
* "gespeicherten Wert weiterverwenden" (Merge-Logik in
|
||||
* `ProxmoxService.resolveEffectiveTestServer`), genau wie beim Bearbeiten.
|
||||
* Fuer die Neuanlage (noch kein gespeicherter Server) bleiben alle Felder
|
||||
* optional, weil es dort keinen gespeicherten Fallback gibt — ein fehlendes
|
||||
* Pflichtfeld fuehrt dort einfach zum selben Fehlerschluessel wie ein leer
|
||||
* gelassenes Feld beim Anlegen selbst (z. B. `zugang` ohne Geheimnis).
|
||||
*/
|
||||
export class TestProxmoxServerDto extends UpdateProxmoxServerDto {}
|
||||
|
||||
Reference in New Issue
Block a user