matrix-org / matrix-org/matrix-bifrost
Add XMPP MUC captcha support
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 187
- Forks
- 38
- PR merge metrics
- No merged PRs in 30d
Description
**Is your feature request related to a problem? Please describe.**
Currently if you join to a bridged chat by this mask alias #xmpp__:matrix.org and that XMPP conference has a captcha the bot will create a room as usual (if there was no such a room previously) you join, everything looks fine. But the virtual user on XMPP chat will not appear and your messages won’t be delivered.
**Describe the solution you'd like**
Bot makes the user to be a read-only only one (drops permission to 0) before it make sure user is created on XMPP side and able to speak in that XMPP chat. Bot creates a PM chat with the user and sends him URL to a captcha image. After captcha is successfully confirmed and the bot see that virtual user has successfully entered the XMPP chat it gives normal permission to the user so it can speak. But if user is only a visitor on the XMPP side it also doesn’t make sense to give him permission to speak on the Matrix side.
**Describe alternatives you've considered**
None.
**Additional context**
If I add the user to the members list on XMPP side (in this case the captcha isn’t shown to the user) the user can join XMPP chat after writing a message to the Matrix bridged room. That first message won’t be delivered to XMPP chat, second one and all the future messages will.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the XMPP MUC join and Matrix permission-handling entry points, then trace how bridged users are created and how private messages are delivered. Define the captcha flow, including read-only permissions until confirmation and visitor handling, and verify that successful users can speak and deliver messages normally.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend, networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100