- Navios
- 17 de setembro de 2026 às 04:31 UTC
- Autor
- Kamo
- Enviar
- d35858f
As credenciais de uma integração de contatos Json foi substituído por qualquer um salvo enviado. A página CalDAV/CardDAV da org envia tudo quatro campos de servidor (vazio — eles nunca mostram o que é armazenado) em cada gravação de um servidor Apple ou personalizado, então pressionando Salvar para alterar um switch de sincronização sobrescrito o endereço armazenado, nome de usuário e senha com strings vazias. A O diálogo de fonte da página de contatos envia apenas os campos digitados, de modo que alterar uma senha deixou cair o endereço e o nome de usuário. IntegrationSettingsService agora distingue os dois tipos de escrita credencial: - Uma configuração salvar (org PUT, membro POST/PUT) MERGA: um campo em branco ou nulo é "não fornecido" e mantém seu armazenado valor; todos os campos em branco não altera nada; um campo digitado substitui sua contraparte armazenada e todos os outros armazenados O campo fica. Um salvamento que muda o provedor começa do nada, para que os tokens de uma OAuth Grant nunca sejam transportados para as credenciais de um ID Apple ou o contrário. Uma senha armazenada está ligada ao caldavUrl, carddavUrl e nome de usuário com o qual foi salvo: alterar qualquer um deles sem digitar a senha é recusado com um 400 em vez de enviando a senha antiga para um servidor ou conta diferente. Uma credencial que não é um objeto JSON é armazenada como enviado, como antes. - Um consentimento OAuth REPRESENTA o subsídio inteiro (novo salvoOrgOAuthGrant para o callback org; saveMemberOAuth). Uma mesclagem o provedor não reemitiu, ou o e-mail de outra conta. O controlador responde IlegalArgumentException a partir destes salva com 400 em vez de 500. As actualizações de fichas (aqui e em daemonservice) leia e reescreva todo o mapa descriptografado na entidade, e ProviderRegistry / GenéricosDavProvider só o leu; nenhum deles muda. Não há linhas de contato integrações na produção, então Nada foi limpo ainda. IntegrationSettingsServiceTest: campos em branco mantêm o servidor, um campo digitado substitui apenas a si mesmo, um novo endereço/conta sem a senha é recusado e não muda nada (o mesmo endereço ressentido não é uma mudança), um switch de provedor deixa cair as chaves do outro provedor, org e membro OAuth substituem. Verificada por mutação: substituição em vez de mesclar, removendo a ligação de senha, ignorando o switch do provedor, e mesclando qualquer concessão OAuth Cada um falha num teste. Suíte completa: 1763 testes, 0 falhas.