element-hq / element-hq/element-web

Users may try to redact their own join event, causing confusing behaviour

Open
#21,085 5 comments 0 reactions 0 assignees View on GitHub
O-Occasional S-Minor T-Defect X-Needs-Product
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.