mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-27 06:49:24 -05:00
Add option to disable search room lists
This disables both local and remote room list searching.
This commit is contained in:
parent
11f2125885
commit
213c98c00a
@ -1036,6 +1036,11 @@ password_config:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Wether the public room list can be searched. When disabled blocks
|
||||||
|
# searching local and remote room list for local and remote users.
|
||||||
|
#
|
||||||
|
#enable_room_list_search: true
|
||||||
|
|
||||||
# The `alias_creation` option controls who's allowed to create aliases
|
# The `alias_creation` option controls who's allowed to create aliases
|
||||||
# on this server.
|
# on this server.
|
||||||
#
|
#
|
||||||
|
@ -20,6 +20,10 @@ from ._base import Config, ConfigError
|
|||||||
|
|
||||||
class RoomDirectoryConfig(Config):
|
class RoomDirectoryConfig(Config):
|
||||||
def read_config(self, config):
|
def read_config(self, config):
|
||||||
|
self.enable_room_list_search = config.get(
|
||||||
|
"enable_room_list_search", True,
|
||||||
|
)
|
||||||
|
|
||||||
alias_creation_rules = config.get("alias_creation_rules")
|
alias_creation_rules = config.get("alias_creation_rules")
|
||||||
|
|
||||||
if alias_creation_rules is not None:
|
if alias_creation_rules is not None:
|
||||||
@ -54,6 +58,11 @@ class RoomDirectoryConfig(Config):
|
|||||||
|
|
||||||
def default_config(self, config_dir_path, server_name, **kwargs):
|
def default_config(self, config_dir_path, server_name, **kwargs):
|
||||||
return """
|
return """
|
||||||
|
# Wether the public room list can be searched. When disabled blocks
|
||||||
|
# searching local and remote room list for local and remote users.
|
||||||
|
#
|
||||||
|
#enable_room_list_search: true
|
||||||
|
|
||||||
# The `alias_creation` option controls who's allowed to create aliases
|
# The `alias_creation` option controls who's allowed to create aliases
|
||||||
# on this server.
|
# on this server.
|
||||||
#
|
#
|
||||||
|
@ -44,6 +44,7 @@ EMPTY_THIRD_PARTY_ID = ThirdPartyInstanceID(None, None)
|
|||||||
class RoomListHandler(BaseHandler):
|
class RoomListHandler(BaseHandler):
|
||||||
def __init__(self, hs):
|
def __init__(self, hs):
|
||||||
super(RoomListHandler, self).__init__(hs)
|
super(RoomListHandler, self).__init__(hs)
|
||||||
|
self.config = hs.config
|
||||||
self.response_cache = ResponseCache(hs, "room_list")
|
self.response_cache = ResponseCache(hs, "room_list")
|
||||||
self.remote_response_cache = ResponseCache(hs, "remote_room_list",
|
self.remote_response_cache = ResponseCache(hs, "remote_room_list",
|
||||||
timeout_ms=30 * 1000)
|
timeout_ms=30 * 1000)
|
||||||
@ -70,6 +71,12 @@ class RoomListHandler(BaseHandler):
|
|||||||
"Getting public room list: limit=%r, since=%r, search=%r, network=%r",
|
"Getting public room list: limit=%r, since=%r, search=%r, network=%r",
|
||||||
limit, since_token, bool(search_filter), network_tuple,
|
limit, since_token, bool(search_filter), network_tuple,
|
||||||
)
|
)
|
||||||
|
if not self.config.enable_room_list_search:
|
||||||
|
return defer.succeed({
|
||||||
|
"chunk": [],
|
||||||
|
"total_room_count_estimate": 0,
|
||||||
|
})
|
||||||
|
|
||||||
if search_filter:
|
if search_filter:
|
||||||
# We explicitly don't bother caching searches or requests for
|
# We explicitly don't bother caching searches or requests for
|
||||||
# appservice specific lists.
|
# appservice specific lists.
|
||||||
@ -441,6 +448,12 @@ class RoomListHandler(BaseHandler):
|
|||||||
def get_remote_public_room_list(self, server_name, limit=None, since_token=None,
|
def get_remote_public_room_list(self, server_name, limit=None, since_token=None,
|
||||||
search_filter=None, include_all_networks=False,
|
search_filter=None, include_all_networks=False,
|
||||||
third_party_instance_id=None,):
|
third_party_instance_id=None,):
|
||||||
|
if not self.config.enable_room_list_search:
|
||||||
|
defer.returnValue({
|
||||||
|
"chunk": [],
|
||||||
|
"total_room_count_estimate": 0,
|
||||||
|
})
|
||||||
|
|
||||||
if search_filter:
|
if search_filter:
|
||||||
# We currently don't support searching across federation, so we have
|
# We currently don't support searching across federation, so we have
|
||||||
# to do it manually without pagination
|
# to do it manually without pagination
|
||||||
|
Loading…
Reference in New Issue
Block a user