-
-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Thoughts on mixing restricted rooms with knocking capabilities #869
Comments
for the record, I'm (as of writing) more convinced in the alternative of doing something to join rules to make it support mixing of different conditions, though have no idea what that'd look like. |
A reproduction of: matrix-org/matrix-spec-proposals#3083 (comment) I think we can follow the pattern below. We have We can continue using a {
"type": "m.room.join_rules",
"state_key": "",
"content": {
"join_rule": "restricted",
"allow": [{
"type": "m.room_membership",
"room_id": "!users:example.org"
}],
"allow_knock": [{
"type": "m.any"
}]
}
} You could even compose these to allow members of a (bigger) space to knock. {
"type": "m.room.join_rules",
"state_key": "",
"content": {
"join_rule": "restricted",
"allow": [{
"type": "m.room_membership",
"room_id": "!mods:example.org"
}],
"allow_knock": [{
"type": "m.room_membership",
"room_id": "!users:example.org"
}]
}
} Hopefully we can then deprecate the |
I'm not sure what you mean by mixing conditions. In my mind the set of people who can join directly and the set of people who can knock are entirely separate. We just define each set (as shown above) and we are good to go. Of course someone could be in both sets but that is fine, they just join. They could knock if they want according to the protocol, but there isn't really a reason. (Maybe it could be a form of politeness? But probably best just to recommend that clients don't offer UI for that. |
Signed-off-by: Kevin Cox <kevincox@kevincox.ca> Fixes: https://github.com/matrix-org/matrix-doc/issues/3297
I feel like the title of this is addressed, but if there's parts not already covered by one of the MSCs linked to this issue then let's open a new issue. |
It's somewhat desirable to have both knocking and MSC3083-style restricted rooms so that members can be graced entry with a knock/invite, regular invite, or based upon room membership elsewhere. At the moment, both join mechanisms are at odds with each other due to shared use of the
join_rules
.A not-very-thought-through idea is to mimic the guest access approach for allow lists (MSC3083), making the restriction set independent of the
join_rules
entirely. This can mean that someone could have whatever join rule and still apply an allow list on top of it.There are a number of challenges with this approach though, namely:
join_rules
is painful beyond high-level thinking.An alternative would be to revamp join rules entirely, reimagining how that subsystem could work to support mixing of concerns (conditions) without interfering with itself. This may very well be a better approach.
More thought is definitely needed, but just dumping this here for posterity.
The text was updated successfully, but these errors were encountered: