matrix-org / matrix-org/mjolnir
Add confirmation dialog for room shutdown (in certain cases)
- Dominant language
- TypeScript
- Stars
- 445
- Forks
- 75
- Avg merge
- 2d 44m
- Merged PRs (30d)
- 3
Description
### Problem.
Recently, on a HS I moderate, due to a miscommunication we shut down an official room, because we didn't double-check the internal ID that was provided.
### Possible concerns.
In this case it wasn't malice, but I could also imagine it wouldn't be too hard to create hassle that way, e.g. by creating a bunch of rooms on an HS that obviously violate its policy and then, posing as a concerned user, provide a list of internal IDs, while mixing some legitimate ones into the list.
### Suggested solution.
It would help if in certain cases Mjolnir asked for a confirmation, first. This could include:
- if an internal ID was given, when the room has a published ID(s)
- the room is created or moderated by a user which is accepted as a moderator/admin by the Mjolnir instance
- the room has the instance's account in it
The relevant information would be provided in the response. Mjolnir could attach a `👎️` reaction to that message to easily abort, and only continue with a manually placed `👍️`, the idea being that one doesn't easily misclick to approve it.
### Noteworthy considerations.
- Being able to disable the feature as a whole or aspects of it.
- Should this be on by default? (IMO, yes.)
- A method to approve/abort for clients where reacting with an emoji wouldn't typically be easy, e.g. the CLI clients.
Contributor guide
Research direction
No files, tests, or concrete entry points are named. Start by locating the room-shutdown moderation flow and the handling of reactions and CLI clients; done means the specified risky cases require an explicit approval or abort, with configurable behavior and equivalent approval paths for clients that cannot easily react.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100