From 105108428f65f2ccd1ed0acbbe2d85eaf180f1cd Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Fri, 21 Aug 2020 18:50:40 +0100 Subject: [PATCH] Switch from Power Levels -> Join Rules --- proposals/2403-knock.md | 41 ++++++++--------------------------------- 1 file changed, 8 insertions(+), 33 deletions(-) diff --git a/proposals/2403-knock.md b/proposals/2403-knock.md index adf05089e..f840d4af7 100644 --- a/proposals/2403-knock.md +++ b/proposals/2403-knock.md @@ -40,29 +40,11 @@ being "leave" can knock on a room. This means that a user that is banned, has already knocked or is currently in the room cannot knock on it. ### Join Rules -The `join_rule` of `m.room.join_rules` must be set to "invite" for a knock to -succeed. This means that people can't knock in public rooms. Additionally the -new join rule "private" is introduced. This is so that people can, when -creating a new room, prevent anyone from knocking. - -### Power levels -The default power level for "knock" is the default power level for the room. -If a user has a too low power level to knock, then they aren't allowed to do -so. As power levels can be set for users not currently in the room, this can -be used as a way to limit who can and can't knock. - -#### Example: -`@alice:example.org` CAN knock, but `@bob:example.org` CANNOT: The -(incomplete) content of `m.room.power_levels` is as follows: -```json -{ - "users": { - "@alice:example.org": 1 - }, - "users_default": 0, - "knock": 1 -} -``` +This proposal introduces a new possible value for `join_rule` in +`m.room.join_rules`: "knock". The value of `join_rule` in `m.room.join_rules` +must be set to "knock" for a knock to succeed. This means that existing rooms +will need to opt into allowing knocks in their room. rooms. Other than +allowing knocks, "knock" is no different from the "invite" join rule. ## Membership changes Once someone has sent a `knock` membership into the room, the membership for @@ -164,8 +146,7 @@ be protected via server ACLs. ### `GET /_matrix/federation/v1/make_knock/{roomId}/{userId}` Asks the receiving server to return information that the sending server will -need to prepare a knock -event. +need to prepare a knock event. Request format: @@ -264,16 +245,10 @@ homeserver. # Potential issues This new feature would allow users to spam rooms that they don't partake in. -That is why this proposal adds both the new join rule and the new power -level, in order to allow room admins to mitigate such potential spam. +That is why this proposal adds a new join rule, in order to allow room admins +to opt in to this behaviour. # Alternatives -As for the join rule "invite", instead the join rule "knock" could be -introduced, meaning the room is like "invite" only that people can also -knock. The difference is for existing rooms: With this proposal people can -knock in existing "invite" rooms, with the alternative suggestion being that -they can't. - The two endpoints for the Client-Server API seem redundant, this MSC followed how JOIN is working currently: One "proper" endpoint (`/rooms/{roomId}/join`) and one to work properly over federation (`/join/{roomIdOrAlias}`). They