Skip to content

Thoughts on mixing restricted rooms with knocking capabilities #869

@turt2live

Description

@turt2live

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:

  • Defining the interactions with join_rules is painful beyond high-level thinking.
  • The existing confusion about "invite only but guests can join" is inherited.
  • Splitting out restricted from the join rules feels a bit arbitrary: why not split out knocking? or even all of the rules?

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions