fix: Correctly migrate "verified by me"

This commit is contained in:
Hocuri
2025-07-21 19:04:14 +02:00
committed by l
parent fe6044e1aa
commit 615a1b3f4e

View File

@@ -1505,19 +1505,28 @@ fn migrate_key_contacts(
}; };
let new_id = insert_contact(verified_key).context("Step 13")?; let new_id = insert_contact(verified_key).context("Step 13")?;
verified_key_contacts.insert(original_id.try_into().context("Step 14")?, new_id); verified_key_contacts.insert(original_id.try_into().context("Step 14")?, new_id);
// If the original verifier is unknown, we represent this in the database
// by putting `new_id` into the place of the verifier, let verifier_id = if addr_cmp(&verifier, &addr) {
// i.e. we say that this contact verified itself. // Earlier versions of Delta Chat signalled a direct verification
let verifier_id = // by putting the contact's own address into the verifier column
original_contact_id_from_addr(&verifier, new_id).context("Step 15")?; 1 // 1=ContactId::SELF
} else {
// If the original verifier is unknown, we represent this in the database
// by putting `new_id` into the place of the verifier,
// i.e. we say that this contact verified itself.
original_contact_id_from_addr(&verifier, new_id).context("Step 15")?
};
verifications.insert(new_id, verifier_id); verifications.insert(new_id, verifier_id);
let Some(secondary_verified_key) = secondary_verified_key else { let Some(secondary_verified_key) = secondary_verified_key else {
continue; continue;
}; };
let new_id = insert_contact(secondary_verified_key).context("Step 16")?; let new_id = insert_contact(secondary_verified_key).context("Step 16")?;
let verifier_id: u32 = let verifier_id: u32 = if addr_cmp(&secondary_verifier, &addr) {
original_contact_id_from_addr(&secondary_verifier, new_id).context("Step 17")?; 1 // 1=ContactId::SELF
} else {
original_contact_id_from_addr(&secondary_verifier, new_id).context("Step 17")?
};
// Only use secondary verification if there is no primary verification: // Only use secondary verification if there is no primary verification:
verifications.entry(new_id).or_insert(verifier_id); verifications.entry(new_id).or_insert(verifier_id);
} }