Message Deletion #67
Labels
No Label
client
server
user made
L
M
S
XL
bug
bugfix
discussion
documentation
feature
maintenance
postponed
refactoring
wontfix
No Milestone
No Assignees
2 Participants
Due Date
No due date set.
Blocks
#101 Message Editing
zdm/envoy
Reference: zdm/envoy#67
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A critical part of every messenger is the ability to delete messages on demand.
Currently, only local deletion is supported.
However, complete deletion should also be supported: Necessary actions are
Instant
insideMessage
marking the deletion dateInstant
insideUser
storing the last known time a message has been deletedWith database, you mean a database table?
I think we could solve this by introducing a boolean
deleted
to theMessage
entity. By using the timestamp of the user's last login, he can be notified of the message he must remove from hisLocalDB
.@kske
As you should know by now, I'll always confuse database with database table. I doubt I'll ever learn to do it right.
The problem I see with your approach is that we can then not tell when a message really can be deleted, as we have no way of knowing if every member of a group has received this Deletion update.
For P2P chats, this approach is feasible.
A group message can be deleted when every member of the group has received the deletion request. This is the case, when every group member has logged in after the deletion request has been sent.
This means that we have to include a deletion timestamp, which is true for regular chats as well.
When you speak about deletion, do you mean actual deletion from the
messages
table, or just marking the message as deleted? In the latter case, this process could be simplified.As discussed, the whole idea collapses when considering muliple local databases which have to be updated separately.
We might look into this in the future, however the implementation is a considerable amount of work. As this is not a very important feature (local deletion is still possible thanks to #70), I suggest to postpone this.
Agreed, we can postpone it, but that does not mean deleting the issue either, I'd argue.
Thats why I removed it from the milestone. It can be added to a future milestone later on.
As you might have seen in #97, I have found an efficient solution to the LocalDB problem. Hence, it no longer is unsolveable to delete a message entirely (or better to mark it as deleted).
The best part is: The biggest workload has already been done and can just be copied:
57e85f56e9
has removed any server side message deletion implemented so far and can just be reimplemented (except for a few minor changes).