mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-25 02:55:46 +03:00
Do not show invite-only rooms in spaces summary (unless joined/invited). (#10109)
This commit is contained in:
parent
3fdaf4df55
commit
36a7ff0c86
2 changed files with 10 additions and 10 deletions
1
changelog.d/10109.bugfix
Normal file
1
changelog.d/10109.bugfix
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Fix a bug introduced in v1.35.0 where invite-only rooms would be shown to users in a space who were not invited.
|
|
@ -26,7 +26,6 @@ from synapse.api.constants import (
|
||||||
HistoryVisibility,
|
HistoryVisibility,
|
||||||
Membership,
|
Membership,
|
||||||
)
|
)
|
||||||
from synapse.api.errors import AuthError
|
|
||||||
from synapse.events import EventBase
|
from synapse.events import EventBase
|
||||||
from synapse.events.utils import format_event_for_client_v2
|
from synapse.events.utils import format_event_for_client_v2
|
||||||
from synapse.types import JsonDict
|
from synapse.types import JsonDict
|
||||||
|
@ -456,16 +455,16 @@ class SpaceSummaryHandler:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
# Otherwise, check if they should be allowed access via membership in a space.
|
# Otherwise, check if they should be allowed access via membership in a space.
|
||||||
try:
|
if self._event_auth_handler.has_restricted_join_rules(
|
||||||
await self._event_auth_handler.check_restricted_join_rules(
|
state_ids, room_version
|
||||||
state_ids, room_version, requester, member_event
|
):
|
||||||
|
allowed_spaces = (
|
||||||
|
await self._event_auth_handler.get_spaces_that_allow_join(state_ids)
|
||||||
)
|
)
|
||||||
except AuthError:
|
if await self._event_auth_handler.is_user_in_rooms(
|
||||||
# The user doesn't have access due to spaces, but might have access
|
allowed_spaces, requester
|
||||||
# another way. Keep trying.
|
):
|
||||||
pass
|
return True
|
||||||
else:
|
|
||||||
return True
|
|
||||||
|
|
||||||
# If this is a request over federation, check if the host is in the room or
|
# If this is a request over federation, check if the host is in the room or
|
||||||
# is in one of the spaces specified via the join rules.
|
# is in one of the spaces specified via the join rules.
|
||||||
|
|
Loading…
Reference in a new issue