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

Commit ce794bf

Browse files
committed
Merge stub presence servlet into real servlet.
This is because a) its no longer needed and b) the tests around it broke.
1 parent 05a55f5 commit ce794bf

File tree

4 files changed

+7
-110
lines changed

4 files changed

+7
-110
lines changed

synapse/app/generic_worker.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -121,26 +121,6 @@
121121
logger = logging.getLogger("synapse.app.generic_worker")
122122

123123

124-
class PresenceStatusStubServlet(RestServlet):
125-
"""If presence is disabled this servlet can be used to stub out setting
126-
presence status.
127-
"""
128-
129-
PATTERNS = client_patterns("/presence/(?P<user_id>[^/]*)/status")
130-
131-
def __init__(self, hs):
132-
super().__init__()
133-
self.auth = hs.get_auth()
134-
135-
async def on_GET(self, request, user_id):
136-
await self.auth.get_user_by_req(request)
137-
return 200, {"presence": "offline"}
138-
139-
async def on_PUT(self, request, user_id):
140-
await self.auth.get_user_by_req(request)
141-
return 200, {}
142-
143-
144124
class KeyUploadServlet(RestServlet):
145125
"""An implementation of the `KeyUploadServlet` that responds to read only
146126
requests, but otherwise proxies through to the master instance.
@@ -329,11 +309,6 @@ def _listen_http(self, listener_config: ListenerConfig):
329309

330310
presence.register_servlets(self, resource)
331311

332-
# If presence is disabled, use the stub servlet that does
333-
# not allow sending presence
334-
if not self.config.use_presence:
335-
PresenceStatusStubServlet(self).register(resource)
336-
337312
groups.register_servlets(self, resource)
338313

339314
resources.update({CLIENT_API_PREFIX: resource})

synapse/rest/client/v1/presence.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,15 @@ def __init__(self, hs):
3535
self.clock = hs.get_clock()
3636
self.auth = hs.get_auth()
3737

38+
self._use_presence = hs.config.server.use_presence
39+
3840
async def on_GET(self, request, user_id):
3941
requester = await self.auth.get_user_by_req(request)
4042
user = UserID.from_string(user_id)
4143

44+
if not self._use_presence:
45+
return 200, {"presence": "offline"}
46+
4247
if requester.user != user:
4348
allowed = await self.presence_handler.is_visible(
4449
observed_user=user, observer_user=requester.user
@@ -80,7 +85,7 @@ async def on_PUT(self, request, user_id):
8085
except Exception:
8186
raise SynapseError(400, "Unable to parse state")
8287

83-
if self.hs.config.use_presence:
88+
if self._use_presence:
8489
await self.presence_handler.set_state(user, state)
8590

8691
return 200, {}

tests/app/test_frontend_proxy.py

Lines changed: 0 additions & 83 deletions
This file was deleted.

tests/rest/client/v1/test_presence.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ def test_put_presence(self):
6060
self.assertEqual(channel.code, 200)
6161
self.assertEqual(self.hs.get_presence_handler().set_state.call_count, 1)
6262

63+
@unittest.override_config({"use_presence": False})
6364
def test_put_presence_disabled(self):
6465
"""
6566
PUT to the status endpoint with use_presence disabled will NOT call
6667
set_state on the presence handler.
6768
"""
68-
self.hs.config.use_presence = False
6969

7070
body = {"presence": "here", "status_msg": "beep boop"}
7171
channel = self.make_request(

0 commit comments

Comments
 (0)