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/config/server.py | |
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/config/server.py')
-rw-r--r-- | synapse/config/server.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/synapse/config/server.py b/synapse/config/server.py index 72d30da300..f9e18d2053 100644 --- a/synapse/config/server.py +++ b/synapse/config/server.py @@ -368,9 +368,14 @@ class ServerConfig(Config): # Whether to enable user presence. presence_config = config.get("presence") or {} - self.use_presence = presence_config.get("enabled") - if self.use_presence is None: - self.use_presence = config.get("use_presence", True) + presence_enabled = presence_config.get("enabled") + if presence_enabled is None: + presence_enabled = config.get("use_presence", True) + + # Whether presence is enabled *at all*. + self.presence_enabled = bool(presence_enabled) + # Whether to internally track presence, requires that presence is enabled, + self.track_presence = self.presence_enabled and presence_enabled != "untracked" # Custom presence router module # This is the legacy way of configuring it (the config should now be put in the modules section) |