2 files changed, 10 insertions, 1 deletions
diff --git a/synapse/config/server.py b/synapse/config/server.py
index 8bb97df175..fd52c0475c 100644
--- a/synapse/config/server.py
+++ b/synapse/config/server.py
@@ -384,6 +384,11 @@ class ServerConfig(Config):
# Whether to internally track presence, requires that presence is enabled,
self.track_presence = self.presence_enabled and presence_enabled != "untracked"
+ # Determines if presence results for offline users are included on initial/full sync
+ self.presence_include_offline_users_on_sync = presence_config.get(
+ "include_offline_users_on_sync", False
+ )
+
# Custom presence router module
# This is the legacy way of configuring it (the config should now be put in the modules section)
self.presence_router_module_class = None
diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index de227faec3..ede014180c 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -2270,7 +2270,11 @@ class SyncHandler:
user=user,
from_key=presence_key,
is_guest=sync_config.is_guest,
- include_offline=include_offline,
+ include_offline=(
+ True
+ if self.hs_config.server.presence_include_offline_users_on_sync
+ else include_offline
+ ),
)
assert presence_key
sync_result_builder.now_token = now_token.copy_and_replace(
|