MSC2213: Rejoinability of private/invite-only rooms#2213
Conversation
KitsuneRal
left a comment
There was a problem hiding this comment.
Some thoughts upon the first read.
|
This is a prerequisite for Canonical DMs and hasn't received a lot of traffic. We intend to make Canonical DMs a thing very soon, so in the interest of moving the ball forward: @mscbot fcp merge |
|
This FCP proposal has been cancelled by #2213 (comment). Team member @mscbot has proposed to merge this. The next step is review by the rest of the tagged people: Once at least 75% of reviewers approve (and there are no outstanding concerns), this will enter its final comment period. If you spot a major issue that hasn't been raised at any point in this process, please speak up! See this document for information about what commands tagged team members can give me. |
|
Cancelling FCP proposal as this proposal lacks an implementation. @mscbot fcp cancel |
| 1. If the previous membership is not explicitly `leave`, `rejoin_rule` does not apply. | ||
| For example, bans still ban, invites still invite, and never having been in the room | ||
| does not let you use `rejoin_rule` to get in. | ||
| 2. If the `rejoin_rule` is `forbidden`, or implied to be `forbidden`, reject. | ||
| 3. If the previous membership is explicitly `leave`, the server must look at the membership | ||
| previous to that membership to make a decision: | ||
| 1. If the `rejoin_rule` is `join` and the membership previous to `leave` is not `join` | ||
| then reject. Else accept. | ||
| 2. If the `rejoin_rule` is `invite` and the membership previous to `leave` is not | ||
| `join` or `invite`, reject. Else accept. |
There was a problem hiding this comment.
| 1. If the previous membership is not explicitly `leave`, `rejoin_rule` does not apply. | |
| For example, bans still ban, invites still invite, and never having been in the room | |
| does not let you use `rejoin_rule` to get in. | |
| 2. If the `rejoin_rule` is `forbidden`, or implied to be `forbidden`, reject. | |
| 3. If the previous membership is explicitly `leave`, the server must look at the membership | |
| previous to that membership to make a decision: | |
| 1. If the `rejoin_rule` is `join` and the membership previous to `leave` is not `join` | |
| then reject. Else accept. | |
| 2. If the `rejoin_rule` is `invite` and the membership previous to `leave` is not | |
| `join` or `invite`, reject. Else accept. | |
| 1. If the previous membership is not explicitly `leave`, `rejoin_rule` does not apply. | |
| For example, bans still ban, invites still invite, and never having been in the room | |
| does not let you use `rejoin_rule` to get in. The rejoin rule `block` is an exception, | |
| where leaving a room for any reason prevents further rejoins, even if invited. | |
| 2. If the `rejoin_rule` is `forbidden`, or implied to be `forbidden`, reject. | |
| 3. If the previous membership is explicitly `leave`, the server must look at the membership | |
| previous to that membership to make a decision: | |
| 1. If the `rejoin_rule` is `join` and the membership previous to `leave` is not `join` | |
| then reject. Else accept. | |
| 2. If the `rejoin_rule` is `comeback` and the membership previous to `leave` is not | |
| `join` or member was put into the leave state by some other member, then reject. | |
| Else accept. | |
| 3. If the `rejoin_rule` is `invite` and the membership previous to `leave` is not | |
| `join` or `invite`, reject. Else accept. |
| * `invite`: Members which were previously invited or joined to the room can rejoin, | ||
| provided they are now not banned. | ||
|
|
||
| * `join`: Members which were previously joined to the room can rejoin, provided they | ||
| are now not banned. | ||
|
|
||
| * `forbidden`: This event cannot be used to authorize a rejoin (members must be | ||
| explicitly invited back into the room). This is the default. |
There was a problem hiding this comment.
| * `invite`: Members which were previously invited or joined to the room can rejoin, | |
| provided they are now not banned. | |
| * `join`: Members which were previously joined to the room can rejoin, provided they | |
| are now not banned. | |
| * `forbidden`: This event cannot be used to authorize a rejoin (members must be | |
| explicitly invited back into the room). This is the default. | |
| * `invite`: Members which were previously invited or joined to the room can rejoin, | |
| provided they are now not banned. | |
| *`comeback`: Members which were previously invited or joined to the room can rejoin, | |
| provided they are now not kicked or banned. | |
| * `join`: Members which were previously joined to the room can rejoin, provided they | |
| are now not banned. | |
| * `forbidden`: This event cannot be used to authorize a rejoin (members must be | |
| explicitly invited back into the room). This is the default. | |
| * `block`: A member quitting a room for any reason is treated as if irreversibly banned. | |
| `m.room.join_rules` is expanded to have a new `rejoin_rule` field under `content`, | ||
| preserved by the redaction algorithm. The `rejoin_rule` must be one of: |
There was a problem hiding this comment.
We probably want to add knock to the list of rejoin_rule options now that MSC2403 has merged.
I don't think restricted (MSC3083) or knock_restricted (MSC3787) would make much sense here unless you wanted to allow members to rejoin based on membership somewhere, but not allow new members to join based on that membership? Seems like a bit of an odd-case (and then you need to worry about the configuration of which rooms, etc.)
Rendered
Related issues (by subject):