summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorAndrew Morgan <1342360+anoadragon453@users.noreply.github.com>2023-01-19 12:47:10 +0000
committerGitHub <noreply@github.com>2023-01-19 12:47:10 +0000
commita7b54ca8d84e9371244d792c30fc9084579470e1 (patch)
tree784b74f914bc70c64e1996ffc49e8ebcf01a32c0 /synapse
parentUpdate logging_sample_config.md (#14868) (diff)
downloadsynapse-a7b54ca8d84e9371244d792c30fc9084579470e1.tar.xz
Implement MSC3930: polls push rules (#14787)
Diffstat (limited to 'synapse')
-rw-r--r--synapse/config/experimental.py7
-rw-r--r--synapse/storage/databases/main/push_rule.py3
2 files changed, 9 insertions, 1 deletions
diff --git a/synapse/config/experimental.py b/synapse/config/experimental.py
index 0444ef8244..89586db763 100644
--- a/synapse/config/experimental.py
+++ b/synapse/config/experimental.py
@@ -146,6 +146,13 @@ class ExperimentalConfig(Config):
                 "required to communicate account data deletions to clients."
             )
 
+        # MSC3381: Polls.
+        # In practice, supporting polls in Synapse only requires an implementation of
+        # MSC3930: Push rules for MSC3391 polls; which is what this option enables.
+        self.msc3381_polls_enabled: bool = experimental.get(
+            "msc3381_polls_enabled", False
+        )
+
         # MSC3912: Relation-based redactions.
         self.msc3912_enabled: bool = experimental.get("msc3912_enabled", False)
 
diff --git a/synapse/storage/databases/main/push_rule.py b/synapse/storage/databases/main/push_rule.py
index d4e4b777da..03182887d1 100644
--- a/synapse/storage/databases/main/push_rule.py
+++ b/synapse/storage/databases/main/push_rule.py
@@ -86,8 +86,9 @@ def _load_rules(
     filtered_rules = FilteredPushRules(
         push_rules,
         enabled_map,
-        msc3664_enabled=experimental_config.msc3664_enabled,
         msc1767_enabled=experimental_config.msc1767_enabled,
+        msc3664_enabled=experimental_config.msc3664_enabled,
+        msc3381_polls_enabled=experimental_config.msc3381_polls_enabled,
     )
 
     return filtered_rules