Saving a calendar/contacts intégration ne blanc jamais ses identifiants stockés ou ne laisse tomber ses identifiants stockés

FixEmailService
Expédié
17 septembre 2026 à 04:31 UTC
Auteur
Kamo
Commite
d35858f

Les références d'une intégration de contactJson ont été remplacées par quelque chose qu'une sauvegarde envoyée. L'onglet CalDAV/CardDAV org l'onglet envoie tous quatre champs de serveur (vide - ils n'affichent jamais ce qui est stocké) sur chaque sauvegarde d'un serveur Apple ou d'un serveur personnalisé, donc Enfant pour modifier un interrupteur de synchronisation écraser, écrivant l'adresse, le nom d'utilisateur et le mot de passe stockés avec des chaînes vides. Le Le dialogue source de la page Contacts n'envoie que les champs dactylographiés, de sorte que la modification d'un mot de passe a laissé tomber l'adresse et le nom d'utilisateur. IntegrationSettingsService distingue maintenant les deux types d'écriture d'accréditation: - Un paramétrage sauf (org PUT, membre POST/PUT) MERGES: un champ vierge ou nul n'est pas fourni et conserve son stocké valeur; tous les champs vierges ne change rien; un champ dactylographié remplace son homologue stocké et tous les autres stockés le terrain reste. Une sauvegarde qui change le fournisseur part de rien, donc les jetons d'une subvention OAuth ne sont jamais transportés dans les références d'un identifiant d'Apple ou l'inverse. Un mot de passe stocké est lié au caldavUrl, carddavUrl et le nom d'utilisateur avec lequel il a été sauvegardé: le changement d'un ou l'autre sans taper le mot de passe est refusé avec un 400 plutôt que envoyer l'ancien mot de passe à un serveur ou un compte différent. Un certificat qui n'est pas un objet JSON est stocké en tant que envoyé, comme avant. - Un OAuth consent REPLACES l'intégralité de la subvention (nouveau sauvetage de l'orgOAuthGrant pour le rappel org; saveMemberOAuth). Une fusion il y aurait un jeton de rafraîchissement que le fournisseur n'a pas réédité, ou l'e-mail d'un autre compte. Le contrôleur répond à l'Exception d'Exception à partir de ces arrêts avec 400 au lieu de 500. Les rafraîchissements des jetons (ici et dans le service daemon) lire et réécrire l'ensemble de la carte déchiffrée sur l'entité, et ProviderRegistry / GenericDavProvider ne le lisait que; aucun d'entre eux ne change. Il n'y a pas de lignes d'intégration de contact dans la production, donc Rien n'a encore été essuyé. IntegrationSettingsServiceTest: les champs vierges gardent le serveur, un champ dactylographié ne se remplace que lui-même, un nouveau l'adresse/compte sans le mot de passe est refusé et ne change rien (la même adresse n'est pas un changement), un commutateur de fournisseur laisse tomber les clés de l'autre fournisseur, l'orge et le membre OAuth remplace. Contrôle des mutations: remplacement au lieu de fusionner, supprimer la liaison du mot de passe, ignorer le commutateur du fournisseur, et fusionner l'une ou l'autre subvention OAuth chacun échoue à un test. Suite complète: 1763 tests, 0 échec.

Tous les changements

Comme ce que tu vois expédier ?

Tout cela arrive dans votre espace de travail par lui-même. Commencez sur le plan gratuit et relisez cette page dans un mois.

Commencez gratuitement pour toujoursPrix de visualisation