fix: Update the channel title after joining if the QR code included a wrong title

This commit is contained in:
Hocuri
2026-05-20 16:47:43 +02:00
parent 8ac6c8a4aa
commit 60334b701b
2 changed files with 10 additions and 8 deletions

View File

@@ -3660,17 +3660,20 @@ pub(crate) async fn create_out_broadcast_ex(
|row| row.get(0),
)?;
ensure!(cnt == 0, "{cnt} chats exist with grpid {grpid}");
let mut params: Params = Params::new();
params.update_timestamp(Param::GroupNameTimestamp, time())?;
t.execute(
"INSERT INTO chats
(type, name, name_normalized, grpid, created_timestamp)
VALUES(?, ?, ?, ?, ?)",
(type, name, name_normalized, grpid, created_timestamp, param)
VALUES(?, ?, ?, ?, ?, ?)",
(
Chattype::OutBroadcast,
&chat_name,
normalize_text(&chat_name),
&grpid,
timestamp,
params.to_string(),
),
)?;
let chat_id = ChatId::new(t.last_insert_rowid().try_into()?);

View File

@@ -2922,17 +2922,16 @@ async fn test_broadcast_change_name() -> Result<()> {
let fiona = &tcm.fiona().await;
let broadcast_id = create_broadcast(alice, "Channel".to_string()).await?;
let qr = get_securejoin_qr(alice, Some(broadcast_id)).await.unwrap();
tcm.section("Alice changes the chat name after creating the QR code, but before someone joins");
set_chat_name(alice, broadcast_id, "Updated name after creating QR code").await?;
alice.pop_sent_msg().await;
let mut qr = get_securejoin_qr(alice, Some(broadcast_id)).await.unwrap();
// Something goes wrong with the title, e.g. maybe it gets ellipsized
// Note that the title always comes at the end for human readability
qr += "+wrong+title";
{
tcm.section("Alice invites Bob to her channel");
let bob_chat_id = tcm.exec_securejoin_qr(bob, alice, &qr).await;
let bob_chat = Chat::load_from_db(bob, bob_chat_id).await?;
assert_eq!(bob_chat.name, "Updated name after creating QR code");
assert_eq!(bob_chat.name, "Channel");
}
tcm.section("Alice invites Fiona to her channel");