mirror of
https://github.com/chatmail/core.git
synced 2026-05-04 22:06:29 +03:00
fix: Correctly migrate "verified by me"
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user