Add option to disable searching in the user dir

We still populate it, as it can still be accessed via the admin API.
This commit is contained in:
Erik Johnston 2019-03-19 16:40:19 +00:00
parent 11f2125885
commit 320667a479
2 changed files with 13 additions and 0 deletions

View File

@ -22,9 +22,13 @@ class UserDirectoryConfig(Config):
""" """
def read_config(self, config): def read_config(self, config):
self.user_directory_search_enabled = True
self.user_directory_search_all_users = False self.user_directory_search_all_users = False
user_directory_config = config.get("user_directory", None) user_directory_config = config.get("user_directory", None)
if user_directory_config: if user_directory_config:
self.user_directory_search_enabled = (
user_directory_config.get("enabled", True)
)
self.user_directory_search_all_users = ( self.user_directory_search_all_users = (
user_directory_config.get("search_all_users", False) user_directory_config.get("search_all_users", False)
) )
@ -33,6 +37,8 @@ class UserDirectoryConfig(Config):
return """ return """
# User Directory configuration # User Directory configuration
# #
# 'enabled' defines whether users can search the user directory,
# defaults to True.
# 'search_all_users' defines whether to search all users visible to your HS # 'search_all_users' defines whether to search all users visible to your HS
# when searching the user directory, rather than limiting to users visible # when searching the user directory, rather than limiting to users visible
# in public rooms. Defaults to false. If you set it True, you'll have to run # in public rooms. Defaults to false. If you set it True, you'll have to run
@ -40,5 +46,6 @@ class UserDirectoryConfig(Config):
# on your database to tell it to rebuild the user_directory search indexes. # on your database to tell it to rebuild the user_directory search indexes.
# #
#user_directory: #user_directory:
# enabled: true
# search_all_users: false # search_all_users: false
""" """

View File

@ -59,6 +59,12 @@ class UserDirectorySearchRestServlet(RestServlet):
requester = yield self.auth.get_user_by_req(request, allow_guest=False) requester = yield self.auth.get_user_by_req(request, allow_guest=False)
user_id = requester.user.to_string() user_id = requester.user.to_string()
if not self.hs.config.user_directory_search_enabled:
defer.returnValue((200, {
"limited": False,
"results": [],
}))
body = parse_json_object_from_request(request) body = parse_json_object_from_request(request)
limit = body.get("limit", 10) limit = body.get("limit", 10)