diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-10-26 15:11:24 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-26 15:11:24 -0400 |
commit | 85e5f2dc252b866d67c8da2ddbfdb84974db1807 (patch) | |
tree | 938cdcc69d4c926e6a46361df894c087a73bbbfa /synapse/rest | |
parent | Convert simple_select_list and simple_select_list_txn to return lists of tupl... (diff) | |
download | synapse-85e5f2dc252b866d67c8da2ddbfdb84974db1807.tar.xz |
Add a new module API to update user presence state. (#16544)
This adds a module API which allows a module to update a user's presence state/status message. This is useful for controlling presence from an external system. To fully control presence from the module the presence.enabled config parameter gains a new state of "untracked" which disables internal tracking of presence changes via user actions, etc. Only updates from the module will be persisted and sent down sync properly).
Diffstat (limited to 'synapse/rest')
-rw-r--r-- | synapse/rest/client/presence.py | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/synapse/rest/client/presence.py b/synapse/rest/client/presence.py index d578faa969..054a391f26 100644 --- a/synapse/rest/client/presence.py +++ b/synapse/rest/client/presence.py @@ -42,15 +42,13 @@ class PresenceStatusRestServlet(RestServlet): self.clock = hs.get_clock() self.auth = hs.get_auth() - self._use_presence = hs.config.server.use_presence - async def on_GET( self, request: SynapseRequest, user_id: str ) -> Tuple[int, JsonDict]: requester = await self.auth.get_user_by_req(request) user = UserID.from_string(user_id) - if not self._use_presence: + if not self.hs.config.server.presence_enabled: return 200, {"presence": "offline"} if requester.user != user: @@ -96,7 +94,7 @@ class PresenceStatusRestServlet(RestServlet): except Exception: raise SynapseError(400, "Unable to parse state") - if self._use_presence: + if self.hs.config.server.track_presence: await self.presence_handler.set_state(user, requester.device_id, state) return 200, {} |