You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
matrix-spec-proposals/content/rooms/v7.md

1.5 KiB

title type weight
Room Version 7 docs 60

This room version builds on version 6 to introduce knocking as a possible join rule and membership state.

Client considerations

This is the first room version to support knocking completely. As such, users will not be able to knock on rooms which are not based off v7.

Server implementation components

{{% boxes/warning %}} The information contained in this section is strictly for server implementors. Applications which use the Client-Server API are generally unaffected by the intricacies contained here. The section above regarding client considerations is the resource that Client-Server API use cases should reference. {{% /boxes/warning %}}

Room version 7 adds new authorization rules for events to support knocking. Room version 6 has details of other authorization rule changes, as do the versions v6 is based upon.

For checks perfomed upon m.room.member events, the following conditions are added in context:

If type is `m.room.member`:

...

  * If `membership` is `ban`:

    ...

  * If `membership` is `knock`:

    i. If the `join_rule` is anything other than `knock`, reject.

    ii. If `sender` does not match `state_key`, reject.

    iii. If the `sender`'s current membership is not `ban`, `invite`, or `join`, allow.

    iv. Otherwise, reject.

...

The remaining rules are the same as in room version 6.