Speichern eines Kalenders/Kontakte-Integration wird nie leer aus oder lässt seine gespeicherten Anmeldeinformationen fallen

FixEmailService
Verschifft
17. September 2026 um 04:31 UTC
Autor
Kamo
Ausschuss
d35858f

Die Zugangsdaten einer KontaktintegrationJson wurde durch das ersetzt, was ein Save gesendet hat. Der org CalDAV/CardDAV sendet alles vier Server-Felder (leer - sie zeigen nie, was gespeichert ist) auf jedem Speichern eines Apple oder benutzerdefinierten Server, so Drücken Speichern, um einen Sync-Schalter zu ändern, hat die gespeicherte Adresse, den Benutzernamen und das Passwort mit leeren Strings überschrieben. Die Der Quelldialog der Kontaktseite sendet nur die eingegebenen Felder, so dass das Ändern eines Passworts die Adresse und den Benutzernamen fallen ließ. IntegrationSettingsService unterscheidet nun die beiden Arten von Anmeldeinformationen schreiben: - Eine Einstellung mit Speicherplatz (org PUT, Mitglied POST/PUT) MERGES: ein leeres oder Nullfeld ist "nicht mitgeliefert" und speichert - alle Felder ohne Änderungen; ein getipptes Feld ersetzt sein gespeichertes Gegenstück und jedes andere gespeicherte Feld bleibt. Eine Speichern, der den Anbieter wechselt, beginnt bei Null, so dass die Token eines OAuth-Stipendiums nie getragen werden in die Zugangsdaten einer Apple-ID oder umgekehrt. Ein gespeichertes Passwort ist an den caldavUrl, carddavUrl und Benutzername, mit dem es gespeichert wurde: Ändern einer von ihnen ohne Eingabe des Passwortes wird mit einem 400 statt Das alte Passwort an einen anderen Server oder ein anderes Konto senden. Ein Zugangsdaten, der kein JSON-Objekt ist, wird gespeichert, gesendet, wie zuvor. - Eine OAuth-Zustimmung REPLACES das gesamte Zuschuss (neue saveOrgOAuthGrant für den Org Callback; saveMemberOAuth). Eine Fusion es würde eine refresh Token der Anbieter nicht neu aufgeben zu halten, oder ein anderes Konto E-Mail. Der Controller antwortet IllegalArgumentException von diesen spart mit 400 statt 500. Die Token-Refresher (hier und in daemonservice) lesen und umschreiben die gesamte entschlüsselte Karte auf der Entität, und ProviderRegistry / GenericDavProvider liest es nur; keiner von ihnen ändert sich. Es gibt keine contact_integrations Zeilen in der Produktion, also Noch ist nichts abgewischt. IntegrationSettingsServiceTest: leere Felder halten den Server, ein getipptes Feld ersetzt nur sich selbst, ein neues Adresse/Konto ohne Passwort wird abgelehnt und ändert nichts (die gleiche Adresse resent ist keine Änderung), ein Anbieter-Wechsel lässt die Schlüssel des anderen Anbieters, org und Mitglied OAuth Grants ersetzen. Mutation-geprüft: Ersetzen anstatt zu verschmelzen, die Passwortbindung zu entfernen, den Provider-Wechsel zu ignorieren und entweder OAuth-Zuschüsse zu fusionieren Jeder fällt durch einen Test. Volle Suite: 1763 Tests, 0 Ausfälle.

Alle Änderungen

Wie, was Sie sehen Versand?

Alles kommt in Ihrem Arbeitsbereich für sich. Starten Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat wieder.

Free Forever startenPreisgestaltung anzeigen