Skip to content

Commit a6584ae

Browse files
committed
Add comment to explain extra case where you can be banned -> unbanned
See #17636 (comment)
1 parent fc10d38 commit a6584ae

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

synapse/storage/databases/main/events_bg_updates.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -1963,7 +1963,7 @@ def _find_memberships_to_update_txn(
19631963
)
19641964
return 0
19651965

1966-
def _find_previous_membership_txn(
1966+
def _find_previous_invite_or_knock_membership_txn(
19671967
txn: LoggingTransaction, room_id: str, user_id: str, event_id: str
19681968
) -> Tuple[str, str]:
19691969
# Find the previous invite/knock event before the leave event
@@ -2004,6 +2004,10 @@ def _find_previous_membership_txn(
20042004
(
20052005
room_id,
20062006
user_id,
2007+
# We look explicitely for `invite` and `knock` events instead of
2008+
# just their previous membership as someone could have been `invite`
2009+
# -> `ban` -> unbanned (`leave`) and we want to find the `invite`
2010+
# event where the stripped state is.
20072011
Membership.INVITE,
20082012
Membership.KNOCK,
20092013
event_id,
@@ -2152,8 +2156,8 @@ def _find_previous_membership_txn(
21522156
invite_or_knock_event_id,
21532157
invite_or_knock_membership,
21542158
) = await self.db_pool.runInteraction(
2155-
"sliding_sync_membership_snapshots_bg_update._find_previous_membership",
2156-
_find_previous_membership_txn,
2159+
"sliding_sync_membership_snapshots_bg_update._find_previous_invite_or_knock_membership_txn",
2160+
_find_previous_invite_or_knock_membership_txn,
21572161
room_id,
21582162
user_id,
21592163
membership_event_id,

0 commit comments

Comments
 (0)