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):
self.user_directory_search_enabled = True
self.user_directory_search_all_users = False
user_directory_config = config.get("user_directory", None)
if user_directory_config:
self.user_directory_search_enabled = (
user_directory_config.get("enabled", True)
)
self.user_directory_search_all_users = (
user_directory_config.get("search_all_users", False)
)
@ -33,6 +37,8 @@ class UserDirectoryConfig(Config):
return """
# 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
# 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
@ -40,5 +46,6 @@ class UserDirectoryConfig(Config):
# on your database to tell it to rebuild the user_directory search indexes.
#
#user_directory:
# enabled: true
# 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)
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)
limit = body.get("limit", 10)