A Matrix room can ask to be knocked on rather than joined, and a room in a space can
be restricted to members of that space. moho understands neither: joinMatrixRoom
knows one way in, and there is no occurrence of knock anywhere in the daemon.
So a knock room found in the directory search (#86) is a dead end - the join fails
with the server's refusal and there is nothing else to try - and a restricted room
gives an error that does not explain that being in the space is the way in.
What is needed
POST /knock/{roomIdOrAlias} with a reason, and the knocked state shown while it is
pending: it is neither joined nor invited, and the room list has nowhere to put that
today.
Handle the invite that answers a knock, and the withdrawal that answers a refusal.
For restricted rooms, read m.room.join_rulesallow conditions and say which
space grants entry, rather than failing with a bare 403.
Done looks like: a room that wants to be knocked on can be knocked on, and a
restricted room says what would let you in.
Reference: Element.
A Matrix room can ask to be knocked on rather than joined, and a room in a space can
be restricted to members of that space. moho understands neither: `joinMatrixRoom`
knows one way in, and there is no occurrence of `knock` anywhere in the daemon.
So a knock room found in the directory search (#86) is a dead end - the join fails
with the server's refusal and there is nothing else to try - and a restricted room
gives an error that does not explain that being in the space is the way in.
**What is needed**
- `POST /knock/{roomIdOrAlias}` with a reason, and the knocked state shown while it is
pending: it is neither joined nor invited, and the room list has nowhere to put that
today.
- Handle the invite that answers a knock, and the withdrawal that answers a refusal.
- For restricted rooms, read `m.room.join_rules` `allow` conditions and say which
space grants entry, rather than failing with a bare 403.
**Done looks like:** a room that wants to be knocked on can be knocked on, and a
restricted room says what would let you in.
Reference: Element.
POST /knock/{roomIdOrAlias} with a reason, which is all the people inside have to decide by. No buffer is made for a knock: it is not a join, and a row in the list would say it was — the answer arrives as an invitation, which the invite list already shows.
The room directory now says which rooms are which. A knock room's button says Knock and opens a prompt for the reason; a restricted room says "open to a space's members" and, if a join is tried anyway, explains that joining the space is what opens it rather than passing on a bare 403.
Verified as far as this account can: the endpoint, auth and body shape are right — knocking on a room the account is already in comes back M_FORBIDDEN: You don't have permission to knock, which is the server's own answer to that request. A successful knock needs a room with that join rule and a second account to answer it; that part is unproven here and is worth a look the next time one is to hand.
Finished — https://git.salastil.com/Salastil/nobilis/commit/5ddd786 and https://git.salastil.com/Salastil/moho/commit/8608c8d
`POST /knock/{roomIdOrAlias}` with a reason, which is all the people inside have to decide by. No buffer is made for a knock: it is not a join, and a row in the list would say it was — the answer arrives as an invitation, which the invite list already shows.
The room directory now says which rooms are which. A knock room's button says **Knock** and opens a prompt for the reason; a restricted room says "open to a space's members" and, if a join is tried anyway, explains that joining the space is what opens it rather than passing on a bare 403.
Verified as far as this account can: the endpoint, auth and body shape are right — knocking on a room the account is already in comes back `M_FORBIDDEN: You don't have permission to knock`, which is the server's own answer to that request. A successful knock needs a room with that join rule and a second account to answer it; that part is unproven here and is worth a look the next time one is to hand.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A Matrix room can ask to be knocked on rather than joined, and a room in a space can
be restricted to members of that space. moho understands neither:
joinMatrixRoomknows one way in, and there is no occurrence of
knockanywhere in the daemon.So a knock room found in the directory search (#86) is a dead end - the join fails
with the server's refusal and there is nothing else to try - and a restricted room
gives an error that does not explain that being in the space is the way in.
What is needed
POST /knock/{roomIdOrAlias}with a reason, and the knocked state shown while it ispending: it is neither joined nor invited, and the room list has nowhere to put that
today.
m.room.join_rulesallowconditions and say whichspace grants entry, rather than failing with a bare 403.
Done looks like: a room that wants to be knocked on can be knocked on, and a
restricted room says what would let you in.
Reference: Element.
Finished — https://git.salastil.com/Salastil/nobilis/commit/5ddd786 and https://git.salastil.com/Salastil/moho/commit/8608c8d
POST /knock/{roomIdOrAlias}with a reason, which is all the people inside have to decide by. No buffer is made for a knock: it is not a join, and a row in the list would say it was — the answer arrives as an invitation, which the invite list already shows.The room directory now says which rooms are which. A knock room's button says Knock and opens a prompt for the reason; a restricted room says "open to a space's members" and, if a join is tried anyway, explains that joining the space is what opens it rather than passing on a bare 403.
Verified as far as this account can: the endpoint, auth and body shape are right — knocking on a room the account is already in comes back
M_FORBIDDEN: You don't have permission to knock, which is the server's own answer to that request. A successful knock needs a room with that join rule and a second account to answer it; that part is unproven here and is worth a look the next time one is to hand.