summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2015-02-05 15:11:38 +0000
committerDavid Baker <dave@matrix.org>2015-02-05 15:11:38 +0000
commitaaf50bf6f3d6adee92fa4d5cb55dbf3c5a13dbe3 (patch)
treee75934b0a4650e6698fb66bc3bb6bb238ecffebf
parentServer default rules now of all kinds rather than all being at lowest prio. (diff)
downloadsynapse-aaf50bf6f3d6adee92fa4d5cb55dbf3c5a13dbe3.tar.xz
Give server default rules the 'default' attribute and fix various brokenness.
-rw-r--r--synapse/push/baserules.py1
-rw-r--r--synapse/rest/client/v1/push_rule.py4
-rw-r--r--synapse/storage/push_rule.py7
3 files changed, 9 insertions, 3 deletions
diff --git a/synapse/push/baserules.py b/synapse/push/baserules.py
index 191909ad4d..8d4b806da6 100644
--- a/synapse/push/baserules.py
+++ b/synapse/push/baserules.py
@@ -36,6 +36,7 @@ def make_base_rules(user, kind):
 
     for r in rules:
         r['priority_class'] = PRIORITY_CLASS_MAP[kind]
+        r['default'] = True
 
     return rules
 
diff --git a/synapse/rest/client/v1/push_rule.py b/synapse/rest/client/v1/push_rule.py
index 7ab167ce03..80f116b1ed 100644
--- a/synapse/rest/client/v1/push_rule.py
+++ b/synapse/rest/client/v1/push_rule.py
@@ -345,7 +345,7 @@ def _priority_class_to_template_name(pc):
 def _rule_to_template(rule):
     unscoped_rule_id = None
     if 'rule_id' in rule:
-        _rule_id_from_namespaced(rule['rule_id'])
+        unscoped_rule_id = _rule_id_from_namespaced(rule['rule_id'])
 
     template_name = _priority_class_to_template_name(rule['priority_class'])
     if template_name in ['override', 'underride']:
@@ -364,6 +364,8 @@ def _rule_to_template(rule):
 
     if unscoped_rule_id:
             templaterule['rule_id'] = unscoped_rule_id
+    if 'default' in rule:
+        templaterule['default'] = rule['default']
     return templaterule
 
 
diff --git a/synapse/storage/push_rule.py b/synapse/storage/push_rule.py
index 27502d2399..30e23445d9 100644
--- a/synapse/storage/push_rule.py
+++ b/synapse/storage/push_rule.py
@@ -176,7 +176,7 @@ class PushRuleStore(SQLBaseStore):
         txn.execute(sql, new_rule.values())
 
     @defer.inlineCallbacks
-    def delete_push_rule(self, user_name, rule_id, **kwargs):
+    def delete_push_rule(self, user_name, rule_id):
         """
         Delete a push rule. Args specify the row to be deleted and can be
         any of the columns in the push_rule table, but below are the
@@ -186,7 +186,10 @@ class PushRuleStore(SQLBaseStore):
             user_name (str): The matrix ID of the push rule owner
             rule_id (str): The rule_id of the rule to be deleted
         """
-        yield self._simple_delete_one(PushRuleTable.table_name, kwargs)
+        yield self._simple_delete_one(
+            PushRuleTable.table_name,
+            {'user_name': user_name, 'rule_id': rule_id}
+        )
 
 
 class RuleNotFoundException(Exception):