- Порезанный
- 17 сентября 2026 г. в 04:31 UTC
- Автор
- Kamo
- Обещать
- d35858f
Удостоверения контактной интеграции были заменены любым отправленным сохранением. Вкладка CalDAV/CardDAV отправляет все Четыре поля сервера (пустые — они никогда не показывают, что хранится) на каждой сохранения Apple или пользовательского сервера. нажатием Save для изменения синхронизирующего переключателя переписал сохраненный адрес, имя пользователя и пароль пустыми строками. The Диалог источника страницы контактов отправляет только введённые поля, поэтому при смене пароля выпал адрес и имя пользователя. IntegrationSettingsService теперь различает два типа учетных данных: - Сохранение настроек (org PUT, member POST/PUT) MERGES: пустое или нулевое поле «не поставляется» и сохраняет его на хранение значение; все поля пустые ничего не меняет; типизированное поле заменяет его сохраненный аналог и все другие сохраненные поля поле остается. Экономия, которая меняет провайдера, начинается из ничего, поэтому токены гранта OAuth никогда не переносятся. в учетные данные Apple ID или наоборот. Сохраненный пароль привязан к caldavUrl, carddavUrl и Имя пользователя, с которым он был сохранен: изменение любого из них без ввода пароля отклоняется с помощью 400, а не отправка старого пароля на другой сервер или учетную запись. Удостоверение, которое не является объектом JSON, хранится как Отправлено, как и раньше. Согласие OAuth Заменяет весь грант (новый SaveOrgOAuthGrant для обратного вызова организации; SaveMemberOAuth). Слияние Там будет хранить токен обновления, который провайдер не переиздавал, или электронную почту другой учетной записи. Контроллер отвечает на Незаконный Аргумент Исключение из этих сейвов с 400 вместо 500. Токен освежитель (здесь и в daemonservice) читать и переписывать всю расшифрованную карту на объекте, а также регистр провайдера / GenericDavProvider только читает его; ни один из них не меняется. В производстве нет строк «контакт интеграции», поэтому Ничего еще не было стерто. IntegrationSettingsServiceTest: пустые поля сохраняют сервер, типизированное поле заменяет только себя, новое адрес/аккаунт без пароля отклоняется и ничего не меняет (один и тот же адрес не возмущается изменением), (a) коммутатор провайдера отбрасывает ключи другого провайдера, и заменяет гранты OAuth. Проверка мутаций: замена вместо слияния, удаления привязки пароля, игнорирования переключателя провайдера и слияния гранта OAuth Каждый провалил тест. Полный комплект: 1763 испытания, 0 отказов.