mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-10-23 02:12:25 +00:00
core: archive reports after deleting member messages
Review fix: archiving ran before the member's own chat items were deleted, so a store error in it (withStore' short-circuits CM) would abort removal after x.grp.mem.del was already sent, leaving the messages undeleted. The archive predicate uses quoted_member_id on the report row, which the member's item deletion does not touch, so the order is otherwise equivalent.
This commit is contained in:
1 parent
35d541a5a7
commit
70ae7f9f94
2 files changed
+2
-2
No files matched your search
@@ -3172,10 +3172,10 @@ processChatCommand cxt nm = \case
|
||||
else void $ deleteOrUpdateMemberRecordIO db user gInfo m
|
||||
pure m {memberStatus = GSMemRemoved}
|
||||
deleteMessages user gInfo@GroupInfo {membership} ms = do
|
||||
archiveMembersReports user gInfo ms membership True
|
||||
if groupFeatureUserAllowed SGFFullDelete gInfo
|
||||
then deleteGroupMembersCIs user gInfo ms
|
||||
else markGroupMembersCIsDeleted user gInfo ms membership
|
||||
archiveMembersReports user gInfo ms membership True
|
||||
APILeaveGroup groupId -> withUser $ \user@User {userId} -> do
|
||||
gInfo@GroupInfo {membership} <- withFastStore $ \db -> getGroupInfo db cxt user groupId
|
||||
filesInfo <- withFastStore' $ \db -> getGroupFileInfo db user gInfo
|
||||
|
||||
@@ -3655,10 +3655,10 @@ processAgentMessageConn cxt user@User {userId} corrId agentConnId agentMessage =
|
||||
groupMsgToView cInfo ci
|
||||
deleteMessages :: GroupInfo -> GroupMember -> CM ()
|
||||
deleteMessages gInfo' delMem = do
|
||||
archiveMembersReports user gInfo' [delMem] m False
|
||||
if groupFeatureMemberAllowed SGFFullDelete m gInfo'
|
||||
then deleteGroupMemberCIs user gInfo' delMem
|
||||
else markGroupMemberCIsDeleted user gInfo' delMem m
|
||||
archiveMembersReports user gInfo' [delMem] m False
|
||||
forwardToMember :: GroupMember -> CM ()
|
||||
forwardToMember member =
|
||||
let fwd = GrpMsgForward {fwdSender = FwdMember (memberId' m) (memberShortenedName m), fwdBrokerTs = brokerTs}
|
||||
|
||||
Reference in new issue
Block a user