element-hq / element-hq/element-web
Users may try to redact their own join event, causing confusing behaviour
- Dominant language
- TypeScript
- Stars
- 13.5k
- Forks
- 2.8k
- PR merge metrics
- PR metrics pending
Description
### Steps to reproduce
In the Discord world, it can be common to delete the message signalling that you've joined a server in order to hide the fact that you joined. I am not sure why Discord allows this, but that is the case.
Users coming from this world may try to do the same in Element, by redacting their own join event. Doing so will only strip any keys other than `membership` from the event's content, meaning:
1. The event does not leave the timeline.
2. The user's displayname and avatar disappear.
Additionally, the redaction does not appear in the timeline, which I found odd.
I don't propose that this be prevented at the spec level (some people may want to remove their displayname and avatar from a room - though arguably this could just as easily be done by sending another join event). Instead, I think Element should either prevent it in the UI at the client level (don't show the option) or otherwise warn the user when they're about to do it. Though that may be a bit complicated to describe in plain words.
### Outcome
#### What did you expect?
To not see users redacting their own join events and then getting confused and thinking that there's a bug.
#### What happened instead?
The opposite.
### Operating system
_No response_
### Application version
_No response_
### How did you install the app?
_No response_
### Homeserver
_No response_
### Will you send logs?
No
Contributor guide
Assessment
This issue has not been assessed yet.