diff --git a/synapse/handlers/initial_sync.py b/synapse/handlers/initial_sync.py
index b7c6a921d9..b116500c7d 100644
--- a/synapse/handlers/initial_sync.py
+++ b/synapse/handlers/initial_sync.py
@@ -277,7 +277,9 @@ class InitialSyncHandler(BaseHandler):
(
membership,
member_event_id,
- ) = await self.auth.check_user_in_room_or_world_readable(room_id, user_id)
+ ) = await self.auth.check_user_in_room_or_world_readable(
+ room_id, user_id, allow_departed_users=True,
+ )
is_peeking = member_event_id is None
if membership == Membership.JOIN:
diff --git a/synapse/handlers/message.py b/synapse/handlers/message.py
index be6ae18a92..d6be280952 100644
--- a/synapse/handlers/message.py
+++ b/synapse/handlers/message.py
@@ -99,7 +99,9 @@ class MessageHandler(object):
(
membership,
membership_event_id,
- ) = yield self.auth.check_in_room_or_world_readable(room_id, user_id)
+ ) = yield self.auth.check_user_in_room_or_world_readable(
+ room_id, user_id, allow_departed_users=True
+ )
if membership == Membership.JOIN:
data = yield self.state.get_current_state(room_id, event_type, state_key)
@@ -177,7 +179,9 @@ class MessageHandler(object):
(
membership,
membership_event_id,
- ) = yield self.auth.check_in_room_or_world_readable(room_id, user_id)
+ ) = yield self.auth.check_user_in_room_or_world_readable(
+ room_id, user_id, allow_departed_users=True
+ )
if membership == Membership.JOIN:
state_ids = yield self.store.get_filtered_current_state_ids(
@@ -216,8 +220,8 @@ class MessageHandler(object):
if not requester.app_service:
# We check AS auth after fetching the room membership, as it
# requires us to pull out all joined members anyway.
- membership, _ = yield self.auth.check_in_room_or_world_readable(
- room_id, user_id
+ membership, _ = yield self.auth.check_user_in_room_or_world_readable(
+ room_id, user_id, allow_departed_users=True
)
if membership != Membership.JOIN:
raise NotImplementedError(
diff --git a/synapse/handlers/pagination.py b/synapse/handlers/pagination.py
index caf841a643..254a9f6856 100644
--- a/synapse/handlers/pagination.py
+++ b/synapse/handlers/pagination.py
@@ -335,7 +335,9 @@ class PaginationHandler(object):
(
membership,
member_event_id,
- ) = await self.auth.check_in_room_or_world_readable(room_id, user_id)
+ ) = await self.auth.check_user_in_room_or_world_readable(
+ room_id, user_id, allow_departed_users=True
+ )
if source_config.direction == "b":
# if we're going backwards, we might need to backfill. This
|