mirror of
https://github.com/chatmail/core.git
synced 2026-04-17 21:46:35 +03:00
remove all member_added/remove_events
This commit is contained in:
@@ -4463,23 +4463,6 @@ int64_t dc_lot_get_timestamp (const dc_lot_t* lot);
|
|||||||
*/
|
*/
|
||||||
#define DC_EVENT_SECUREJOIN_JOINER_PROGRESS 2061
|
#define DC_EVENT_SECUREJOIN_JOINER_PROGRESS 2061
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This event is sent for each member that gets added to a (verified or unverified) chat.
|
|
||||||
*
|
|
||||||
* @param data1 (int) chat_id
|
|
||||||
* @param data2 (int) contact_id
|
|
||||||
*/
|
|
||||||
#define DC_EVENT_MEMBER_ADDED 2062
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This event is sent for each member that gets removed from a (verified or unverified) chat.
|
|
||||||
*
|
|
||||||
* @param data1 (int) chat_id
|
|
||||||
* @param data2 (int) contact_id
|
|
||||||
*/
|
|
||||||
#define DC_EVENT_MEMBER_REMOVED 2063
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @}
|
* @}
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -196,25 +196,6 @@ impl ContextWrapper {
|
|||||||
progress as uintptr_t,
|
progress as uintptr_t,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Event::SecurejoinMemberAdded {
|
|
||||||
chat_id,
|
|
||||||
contact_id,
|
|
||||||
}
|
|
||||||
| Event::MemberAdded {
|
|
||||||
chat_id,
|
|
||||||
contact_id,
|
|
||||||
}
|
|
||||||
| Event::MemberRemoved {
|
|
||||||
chat_id,
|
|
||||||
contact_id,
|
|
||||||
} => {
|
|
||||||
ffi_cb(
|
|
||||||
self,
|
|
||||||
event_id,
|
|
||||||
chat_id.to_u32() as uintptr_t,
|
|
||||||
contact_id as uintptr_t,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ from os.path import join as joinpath
|
|||||||
DC_GCL_ARCHIVED_ONLY = 0x01
|
DC_GCL_ARCHIVED_ONLY = 0x01
|
||||||
DC_GCL_NO_SPECIALS = 0x02
|
DC_GCL_NO_SPECIALS = 0x02
|
||||||
DC_GCL_ADD_ALLDONE_HINT = 0x04
|
DC_GCL_ADD_ALLDONE_HINT = 0x04
|
||||||
|
DC_GCL_FOR_FORWARDING = 0x08
|
||||||
DC_GCL_VERIFIED_ONLY = 0x01
|
DC_GCL_VERIFIED_ONLY = 0x01
|
||||||
DC_GCL_ADD_SELF = 0x02
|
DC_GCL_ADD_SELF = 0x02
|
||||||
DC_QR_ASK_VERIFYCONTACT = 200
|
DC_QR_ASK_VERIFYCONTACT = 200
|
||||||
@@ -98,9 +99,6 @@ DC_EVENT_IMEX_PROGRESS = 2051
|
|||||||
DC_EVENT_IMEX_FILE_WRITTEN = 2052
|
DC_EVENT_IMEX_FILE_WRITTEN = 2052
|
||||||
DC_EVENT_SECUREJOIN_INVITER_PROGRESS = 2060
|
DC_EVENT_SECUREJOIN_INVITER_PROGRESS = 2060
|
||||||
DC_EVENT_SECUREJOIN_JOINER_PROGRESS = 2061
|
DC_EVENT_SECUREJOIN_JOINER_PROGRESS = 2061
|
||||||
DC_EVENT_SECUREJOIN_MEMBER_ADDED = 2062
|
|
||||||
DC_EVENT_MEMBER_ADDED = 2063
|
|
||||||
DC_EVENT_MEMBER_REMOVED = 2064
|
|
||||||
DC_EVENT_FILE_COPIED = 2055
|
DC_EVENT_FILE_COPIED = 2055
|
||||||
DC_EVENT_IS_OFFLINE = 2081
|
DC_EVENT_IS_OFFLINE = 2081
|
||||||
DC_EVENT_GET_STRING = 2091
|
DC_EVENT_GET_STRING = 2091
|
||||||
|
|||||||
@@ -1202,11 +1202,6 @@ class TestOnlineAccount:
|
|||||||
ac1._evtracker.get_matching("DC_EVENT_IMAP_MESSAGE_DELETED")
|
ac1._evtracker.get_matching("DC_EVENT_IMAP_MESSAGE_DELETED")
|
||||||
ac2._evtracker.get_matching("DC_EVENT_IMAP_MESSAGE_DELETED")
|
ac2._evtracker.get_matching("DC_EVENT_IMAP_MESSAGE_DELETED")
|
||||||
wait_securejoin_inviter_progress(ac1, 1000)
|
wait_securejoin_inviter_progress(ac1, 1000)
|
||||||
ac1._evtracker.get_matching("DC_EVENT_MEMBER_ADDED")
|
|
||||||
|
|
||||||
ch.remove_contact(ac1.get_self_contact())
|
|
||||||
ac2._evtracker.get_matching("DC_EVENT_MEMBER_REMOVED")
|
|
||||||
ac1._evtracker.get_matching("DC_EVENT_MEMBER_REMOVED")
|
|
||||||
|
|
||||||
def test_qr_verified_group_and_chatting(self, acfactory, lp):
|
def test_qr_verified_group_and_chatting(self, acfactory, lp):
|
||||||
ac1, ac2 = acfactory.get_two_online_accounts()
|
ac1, ac2 = acfactory.get_two_online_accounts()
|
||||||
@@ -1218,7 +1213,6 @@ class TestOnlineAccount:
|
|||||||
chat2 = ac2.qr_join_chat(qr)
|
chat2 = ac2.qr_join_chat(qr)
|
||||||
assert chat2.id >= 10
|
assert chat2.id >= 10
|
||||||
wait_securejoin_inviter_progress(ac1, 1000)
|
wait_securejoin_inviter_progress(ac1, 1000)
|
||||||
ac1._evtracker.get_matching("DC_EVENT_MEMBER_ADDED")
|
|
||||||
|
|
||||||
lp.sec("ac2: read member added message")
|
lp.sec("ac2: read member added message")
|
||||||
msg = ac2._evtracker.wait_next_incoming_message()
|
msg = ac2._evtracker.wait_next_incoming_message()
|
||||||
@@ -1540,7 +1534,6 @@ class TestGroupStressTests:
|
|||||||
to_remove = contacts[-1]
|
to_remove = contacts[-1]
|
||||||
|
|
||||||
msg.chat.remove_contact(to_remove)
|
msg.chat.remove_contact(to_remove)
|
||||||
ac2._evtracker.get_matching("DC_EVENT_MEMBER_REMOVED")
|
|
||||||
|
|
||||||
lp.sec("ac1: receiving system message about contact removal")
|
lp.sec("ac1: receiving system message about contact removal")
|
||||||
sysmsg = ac1._evtracker.wait_next_incoming_message()
|
sysmsg = ac1._evtracker.wait_next_incoming_message()
|
||||||
|
|||||||
20
src/chat.rs
20
src/chat.rs
@@ -1795,7 +1795,6 @@ pub fn create_group_chat(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// add a contact to the chats_contact table
|
/// add a contact to the chats_contact table
|
||||||
/// on success emit MemberAdded event and return true
|
|
||||||
pub(crate) fn add_to_chat_contacts_table(
|
pub(crate) fn add_to_chat_contacts_table(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
chat_id: ChatId,
|
chat_id: ChatId,
|
||||||
@@ -1807,14 +1806,7 @@ pub(crate) fn add_to_chat_contacts_table(
|
|||||||
"INSERT INTO chats_contacts (chat_id, contact_id) VALUES(?, ?)",
|
"INSERT INTO chats_contacts (chat_id, contact_id) VALUES(?, ?)",
|
||||||
params![chat_id, contact_id as i32],
|
params![chat_id, contact_id as i32],
|
||||||
) {
|
) {
|
||||||
Ok(()) => {
|
Ok(()) => true,
|
||||||
context.call_cb(Event::MemberAdded {
|
|
||||||
chat_id,
|
|
||||||
contact_id,
|
|
||||||
});
|
|
||||||
|
|
||||||
true
|
|
||||||
}
|
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
error!(
|
error!(
|
||||||
context,
|
context,
|
||||||
@@ -1827,7 +1819,6 @@ pub(crate) fn add_to_chat_contacts_table(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// remove a contact from the chats_contact table
|
/// remove a contact from the chats_contact table
|
||||||
/// on success emit MemberRemoved event and return true
|
|
||||||
pub(crate) fn remove_from_chat_contacts_table(
|
pub(crate) fn remove_from_chat_contacts_table(
|
||||||
context: &Context,
|
context: &Context,
|
||||||
chat_id: ChatId,
|
chat_id: ChatId,
|
||||||
@@ -1839,14 +1830,7 @@ pub(crate) fn remove_from_chat_contacts_table(
|
|||||||
"DELETE FROM chats_contacts WHERE chat_id=? AND contact_id=?",
|
"DELETE FROM chats_contacts WHERE chat_id=? AND contact_id=?",
|
||||||
params![chat_id, contact_id as i32],
|
params![chat_id, contact_id as i32],
|
||||||
) {
|
) {
|
||||||
Ok(()) => {
|
Ok(()) => true,
|
||||||
context.call_cb(Event::MemberRemoved {
|
|
||||||
chat_id,
|
|
||||||
contact_id,
|
|
||||||
});
|
|
||||||
|
|
||||||
true
|
|
||||||
}
|
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
warn!(
|
warn!(
|
||||||
context,
|
context,
|
||||||
|
|||||||
@@ -201,22 +201,4 @@ pub enum Event {
|
|||||||
/// (Bob has verified alice and waits until Alice does the same for him)
|
/// (Bob has verified alice and waits until Alice does the same for him)
|
||||||
#[strum(props(id = "2061"))]
|
#[strum(props(id = "2061"))]
|
||||||
SecurejoinJoinerProgress { contact_id: u32, progress: usize },
|
SecurejoinJoinerProgress { contact_id: u32, progress: usize },
|
||||||
|
|
||||||
/// This event is sent out to the inviter when a joiner successfully joined a group.
|
|
||||||
/// @param data1 (int) chat_id
|
|
||||||
/// @param data2 (int) contact_id
|
|
||||||
#[strum(props(id = "2062"))]
|
|
||||||
SecurejoinMemberAdded { chat_id: ChatId, contact_id: u32 },
|
|
||||||
|
|
||||||
/// This event is sent for each contact added to a chat.
|
|
||||||
/// @param data1 (int) chat_id
|
|
||||||
/// @param data2 (int) contact_id
|
|
||||||
#[strum(props(id = "2063"))]
|
|
||||||
MemberAdded { chat_id: ChatId, contact_id: u32 },
|
|
||||||
|
|
||||||
/// This event is sent for each contact removed from a chat.
|
|
||||||
/// @param data1 (int) chat_id
|
|
||||||
/// @param data2 (int) contact_id
|
|
||||||
#[strum(props(id = "2064"))]
|
|
||||||
MemberRemoved { chat_id: ChatId, contact_id: u32 },
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -753,17 +753,12 @@ pub(crate) fn handle_securejoin_handshake(
|
|||||||
.get(HeaderDef::SecureJoinGroup)
|
.get(HeaderDef::SecureJoinGroup)
|
||||||
.map(|s| s.as_str())
|
.map(|s| s.as_str())
|
||||||
.unwrap_or_else(|| "");
|
.unwrap_or_else(|| "");
|
||||||
let (group_chat_id, _, _) = chat::get_chat_id_by_grpid(context, &field_grpid)
|
if let Err(err) = chat::get_chat_id_by_grpid(context, &field_grpid) {
|
||||||
.map_err(|err| {
|
|
||||||
warn!(context, "Failed to lookup chat_id from grpid: {}", err);
|
warn!(context, "Failed to lookup chat_id from grpid: {}", err);
|
||||||
HandshakeError::ChatNotFound {
|
return Err(HandshakeError::ChatNotFound {
|
||||||
group: field_grpid.to_string(),
|
group: field_grpid.to_string(),
|
||||||
}
|
});
|
||||||
})?;
|
}
|
||||||
context.call_cb(Event::MemberAdded {
|
|
||||||
chat_id: group_chat_id,
|
|
||||||
contact_id,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
Ok(HandshakeMessage::Ignore) // "Done" deletes the message and breaks multi-device
|
Ok(HandshakeMessage::Ignore) // "Done" deletes the message and breaks multi-device
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user