Clarify an edge case.

pull/3368/head
Patrick Cloke 4 years ago committed by Richard van der Hoff
parent 6919bbf80c
commit 084e6225c5

@ -48,12 +48,16 @@ Any entries in the list which do not match the expected format are ignored.
When a homeserver receives a `/join` request from a client or a `/make_join` / `/send_join` When a homeserver receives a `/join` request from a client or a `/make_join` / `/send_join`
request from a server, the request should only be permitted if the user has a valid request from a server, the request should only be permitted if the user has a valid
invite or is in one of the listed spaces. Note that the server may not know if the user invite or is in one of the listed spaces.
is in a particular space, this is left to a future MSC to solve.
If the user is not part of the proper space, the homeserver should return an error If the user is not part of the proper space, the homeserver should return an error
response with HTTP status code of 403 and an `errcode` of `M_FORBIDDEN`. response with HTTP status code of 403 and an `errcode` of `M_FORBIDDEN`.
It is possible for a homeserver receiving a `/make_join` / `/send_join` request
to not know if the user is in a particular space (due to not participating in any
of the necessary spaces). In this case the homeserver should reject the join,
the requesting server may wish to attempt to join via other homeservers.
Unlike the `invite` join rule, confirmation that the `allow` rules were properly Unlike the `invite` join rule, confirmation that the `allow` rules were properly
checked cannot be enforced over federation by event authorization, so servers in checked cannot be enforced over federation by event authorization, so servers in
the room are trusted not to allow invalid users to join.<sup id="a3">[3](#f3)</sup> the room are trusted not to allow invalid users to join.<sup id="a3">[3](#f3)</sup>

Loading…
Cancel
Save