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):
|