session-foundation / session-ios

A private messenger for iOS.
https://getsession.org
GNU General Public License v3.0
4 stars 1 forks source link

[BUG] Push notification with text of deleted message. Visible messages in a chat with deleted from network user. #79

Open OigpeyA6fDomfTs6 opened 1 year ago

OigpeyA6fDomfTs6 commented 1 year ago

Code of conduct

Self-training on how to write a bug report

Is there an existing issue for this?

Current Behavior

Hello,

The first problem is about push-notifications with message text.

Both users has Fast-Mode of notifications. When one of them is deleting an account from a device, the second one can write a message and delete it on both-sides.

When the first user restore the account using a seed-phrase, he'll receive a push-notification with the text of deleted message.


The second problem is about deletion from network.

When the first user had a chat with the second one, he might delete an account FROM NETWORK. The second user can delete an account FROM DEVICE. Then, the second user should restore an account using seed-phrase. After restoration, messages of the first user will be available to read.

Expected Behavior

Both-side deleted message must not be received by a recepient in a push notification. If current algorithm is something like the one below, it should be rethinked.

  1. Send message <Secret message>
  2. Delete the message.

Instead of,

  1. Don't send push about it at all / send push without a message's text.
  2. Send only information about deleted message. Don't send a packet about <Secret message> at all.

Deletion FROM NETWORK must delete user's messages for chat partners too.

Let's assume that chat partner CAN store dialog history because it's stored on a device and you don't want to flood the network with dialog deletion packets for all chat partners.

But what's the reason to give a dialog history for a chat partner when a person has deleted an account FROM NETWORK?

Steps To Reproduce

Steps to reproduce,

A – Alice, the first user. B – Bob, the second one.

A – Create Session account. B – Create Session account.

A – Scan Bob's QR code to open a chat with him. A – Write a message to Bob \<Hi>. B – Receive the message and answer \<Hello>.

B – Send 8 photos. A – Receive photos.

B – Delete the photos on both-sides. A – Wait for the deletion. A – Confirm deletion visually and delete the message about deletion.

A – Save seed phrase. A – Delete account FROM NETWORK. A – Recover it using seed phrase. A – Sees no chats available.

B – Sees full chat history.

A – Scan Bob's QR code. A – Write a message to Bob \<Hi 2>. B – Receive the message and answer \<Hello 2>.

A – Save seed phrase. A – Delete account FROM DEVICE. B – Write a message to Alice \<Secret message>. B – Delete that message on both-sides.

A – Wait for 1 minute. A – Recover account using seed phrase. A – Received two pushes.

The first one is about the message \<Hello 2> which was received previously, before account deletion.

The second one is about the message \<Secret message> which must be deleted and Alice must not receive a push with the message because it was deleted on both sides.

B – Save seed phrase. B – Delete account FROM DEVICE. B – Recover it using seed phrase. B – Sees message from Alice \<Hi> which must be deleted FROM NETWORK because Alice deleted her account previously.

iOS Version

16.3.1

Session Version

2.2.7 (392)

Anything else?

No response