Skip to content
This repository was archived by the owner on Apr 26, 2024. It is now read-only.

Commit 4de8f3f

Browse files
committed
Allow rooms with 'knock' join_rules to appear in the public rooms directory
1 parent d936371 commit 4de8f3f

File tree

1 file changed

+8
-4
lines changed
  • synapse/storage/databases/main

1 file changed

+8
-4
lines changed

synapse/storage/databases/main/room.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from enum import Enum
2020
from typing import Any, Dict, List, Optional, Tuple
2121

22-
from synapse.api.constants import EventTypes
22+
from synapse.api.constants import EventTypes, JoinRules
2323
from synapse.api.errors import StoreError
2424
from synapse.api.room_versions import RoomVersion, RoomVersions
2525
from synapse.storage._base import SQLBaseStore, db_to_json
@@ -177,11 +177,13 @@ def _count_public_rooms_txn(txn):
177177
INNER JOIN room_stats_current USING (room_id)
178178
WHERE
179179
(
180-
join_rules = 'public' OR history_visibility = 'world_readable'
180+
join_rules = 'public' OR join_rules = '%(knock_join_rule)s'
181+
OR history_visibility = 'world_readable'
181182
)
182183
AND joined_members > 0
183184
""" % {
184-
"published_sql": published_sql
185+
"published_sql": published_sql,
186+
"knock_join_rule": JoinRules.KNOCK,
185187
}
186188

187189
txn.execute(sql, query_args)
@@ -311,7 +313,8 @@ async def get_largest_public_rooms(
311313
INNER JOIN room_stats_current USING (room_id)
312314
WHERE
313315
(
314-
join_rules = 'public' OR history_visibility = 'world_readable'
316+
join_rules = 'public' OR join_rules = '%(knock_join_rule)s'
317+
OR history_visibility = 'world_readable'
315318
)
316319
AND joined_members > 0
317320
%(where_clause)s
@@ -320,6 +323,7 @@ async def get_largest_public_rooms(
320323
"published_sql": published_sql,
321324
"where_clause": where_clause,
322325
"dir": "DESC" if forwards else "ASC",
326+
"knock_join_rule": JoinRules.KNOCK,
323327
}
324328

325329
if limit is not None:

0 commit comments

Comments
 (0)