From 4287ecaaf3736e48e5acfde51df8b1c99f7fb5b2 Mon Sep 17 00:00:00 2001 From: Jonathan de Jong Date: Fri, 18 Feb 2022 18:32:23 +0100 Subject: [PATCH 1/5] remove check, and add docs --- docs/workers.md | 11 ++++++++++- synapse/rest/client/shared_rooms.py | 7 ------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/workers.md b/docs/workers.md index 9eb4194e4dcd..8ac95e39bb8c 100644 --- a/docs/workers.md +++ b/docs/workers.md @@ -528,10 +528,19 @@ the following regular expressions: ^/_matrix/client/(r0|v3|unstable)/user_directory/search$ -When using this worker you must also set `update_user_directory: False` in the +When using this worker you must also set `update_user_directory: false` in the shared configuration file to stop the main synapse running background jobs related to updating the user directory. +Above endpoint is not *required* to be routed to this worker. By default, +`update_user_directory` is set to `true`, which means the main process +will handle updates. All workers configured with `client` can handle the above +endpoint as long as either this worker or the main process are configured to +handle it, and are online. + +If `update_user_directory` is set to `false`, and this worker is not running, +the above endpoint may give outdated results. + ### `synapse.app.frontend_proxy` Proxies some frequently-requested client endpoints to add caching and remove diff --git a/synapse/rest/client/shared_rooms.py b/synapse/rest/client/shared_rooms.py index e669fa78902d..170afd7fc9e0 100644 --- a/synapse/rest/client/shared_rooms.py +++ b/synapse/rest/client/shared_rooms.py @@ -48,13 +48,6 @@ async def on_GET( self, request: SynapseRequest, user_id: str ) -> Tuple[int, JsonDict]: - if not self.user_directory_active: - raise SynapseError( - code=400, - msg="The user directory is disabled on this server. Cannot determine shared rooms.", - errcode=Codes.FORBIDDEN, - ) - UserID.from_string(user_id) requester = await self.auth.get_user_by_req(request) From 6d7f3b655c5c08c6daaaa40c37ba2257eca49f53 Mon Sep 17 00:00:00 2001 From: Jonathan de Jong Date: Fri, 18 Feb 2022 18:35:43 +0100 Subject: [PATCH 2/5] news --- changelog.d/12038.misc | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/12038.misc diff --git a/changelog.d/12038.misc b/changelog.d/12038.misc new file mode 100644 index 000000000000..e2a65726b650 --- /dev/null +++ b/changelog.d/12038.misc @@ -0,0 +1 @@ +Remove check on `update_user_directory` for shared rooms handler (MSC2666), and update/expand documentation. \ No newline at end of file From 659a58224f4686d7340e3436b3eb3df808443b83 Mon Sep 17 00:00:00 2001 From: Jonathan de Jong Date: Sat, 19 Mar 2022 17:22:54 +0100 Subject: [PATCH 3/5] Add user_directory_search_enabled check --- synapse/rest/client/shared_rooms.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/synapse/rest/client/shared_rooms.py b/synapse/rest/client/shared_rooms.py index 170afd7fc9e0..e1b8868fb1df 100644 --- a/synapse/rest/client/shared_rooms.py +++ b/synapse/rest/client/shared_rooms.py @@ -43,11 +43,19 @@ def __init__(self, hs: "HomeServer"): self.auth = hs.get_auth() self.store = hs.get_datastores().main self.user_directory_active = hs.config.server.update_user_directory + self.hs = hs async def on_GET( self, request: SynapseRequest, user_id: str ) -> Tuple[int, JsonDict]: + if not self.hs.config.userdirectory.user_directory_search_enabled: + raise SynapseError( + code=400, + msg="User directory searching is disabled", + errcode=Codes.UNKNOWN, + ) + UserID.from_string(user_id) requester = await self.auth.get_user_by_req(request) From 2f516be2911d221323266d85c42a6173f81ef213 Mon Sep 17 00:00:00 2001 From: Jonathan de Jong Date: Wed, 23 Mar 2022 12:42:12 +0100 Subject: [PATCH 4/5] Address erik feedback --- synapse/rest/client/mutual_rooms.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/synapse/rest/client/mutual_rooms.py b/synapse/rest/client/mutual_rooms.py index 90a21fd1c687..2e9ad4fcdb69 100644 --- a/synapse/rest/client/mutual_rooms.py +++ b/synapse/rest/client/mutual_rooms.py @@ -42,17 +42,16 @@ def __init__(self, hs: "HomeServer"): super().__init__() self.auth = hs.get_auth() self.store = hs.get_datastores().main - self.user_directory_active = hs.config.server.update_user_directory - self.hs = hs + self.user_directory_search_enabled = hs.config.userdirectory.user_directory_search_enabled async def on_GET( self, request: SynapseRequest, user_id: str ) -> Tuple[int, JsonDict]: - if not self.hs.config.userdirectory.user_directory_search_enabled: + if not self.user_directory_search_enabled: raise SynapseError( code=400, - msg="User directory searching is disabled", + msg="User directory searching is disabled. Cannot determine shared rooms.", errcode=Codes.UNKNOWN, ) From 8ac34dd45a6be4ec79fb1fc0df6a1541089d490e Mon Sep 17 00:00:00 2001 From: Jonathan de Jong Date: Wed, 23 Mar 2022 13:15:51 +0100 Subject: [PATCH 5/5] can i offer you a lint in this trying time --- synapse/rest/client/mutual_rooms.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/synapse/rest/client/mutual_rooms.py b/synapse/rest/client/mutual_rooms.py index 2e9ad4fcdb69..27bfaf0b2936 100644 --- a/synapse/rest/client/mutual_rooms.py +++ b/synapse/rest/client/mutual_rooms.py @@ -42,7 +42,9 @@ def __init__(self, hs: "HomeServer"): super().__init__() self.auth = hs.get_auth() self.store = hs.get_datastores().main - self.user_directory_search_enabled = hs.config.userdirectory.user_directory_search_enabled + self.user_directory_search_enabled = ( + hs.config.userdirectory.user_directory_search_enabled + ) async def on_GET( self, request: SynapseRequest, user_id: str