fix: Don't show a weird 'Secure-Join: vb-request-v2 message' in Alice's 1:1 chat a recipient

This commit is contained in:
Hocuri
2025-08-08 15:49:48 +02:00
parent 3cf7746ceb
commit 792c05fc3e
3 changed files with 18 additions and 6 deletions

View File

@@ -2902,6 +2902,16 @@ async fn test_broadcast_joining_golden() -> Result<()> {
bob.golden_test_chat(bob_chat_id, "test_broadcast_joining_golden_bob")
.await;
let alice_bob_contact = alice.add_or_lookup_contact_id(bob).await;
let direct_chat = ChatIdBlocked::lookup_by_contact(alice, alice_bob_contact)
.await?
.unwrap();
// The 1:1 chat with Bob should not be visible to the user:
assert_eq!(direct_chat.blocked, Blocked::Yes);
alice
.golden_test_chat(direct_chat.id, "test_broadcast_joining_golden_alice_direct")
.await;
Ok(())
}
@@ -3099,7 +3109,7 @@ async fn test_leave_broadcast_multidevice() -> Result<()> {
let qr = get_securejoin_qr(alice, Some(alice_chat_id)).await.unwrap();
join_securejoin(bob0, &qr).await.unwrap();
let request = bob0.pop_sent_msg().await;
alice.recv_msg(&request).await;
alice.recv_msg_trash(&request).await;
let answer = alice.pop_sent_msg().await;
bob0.recv_msg(&answer).await;
bob1.recv_msg(&answer).await;

View File

@@ -4,9 +4,7 @@ use anyhow::{Context as _, Error, Result, bail, ensure};
use deltachat_contact_tools::ContactAddress;
use percent_encoding::{NON_ALPHANUMERIC, utf8_percent_encode};
use crate::chat::{
self, Chat, ChatId, ChatIdBlocked, ProtectionStatus, get_chat_id_by_grpid,
};
use crate::chat::{self, Chat, ChatId, ChatIdBlocked, ProtectionStatus, get_chat_id_by_grpid};
use crate::chatlist_events;
use crate::config::Config;
use crate::constants::{Blocked, Chattype, NON_ALPHANUMERIC_WITHOUT_DOT};
@@ -443,11 +441,11 @@ pub(crate) async fn handle_securejoin_handshake(
.await?;
inviter_progress(context, contact_id, 800);
inviter_progress(context, contact_id, 1000);
if step.starts_with("vb-") {
if step == "vb-request-v2" {
// For broadcasts, we don't want to delete the message,
// because the other device should also internally add the member
// and see the key (because it won't see the member via autocrypt-gossip).
Ok(HandshakeMessage::Propagate)
Ok(HandshakeMessage::Ignore)
} else {
// IMAP-delete the message to avoid handling it by another device and adding the
// member twice. Another device will know the member's key from Autocrypt-Gossip.

View File

@@ -0,0 +1,4 @@
Single#Chat#11: bob@example.net [KEY bob@example.net] 🛡️
--------------------------------------------------------------------------------
Msg#11: info (Contact#Contact#Info): Messages are end-to-end encrypted. [NOTICED][INFO 🛡️]
--------------------------------------------------------------------------------