forked from MirrorHub/synapse
Merge pull request #531 from matrix-org/markjh/relative_push_rules
Fix adding push rules relative to other rules
This commit is contained in:
commit
d6c831bd3d
2 changed files with 12 additions and 6 deletions
|
@ -66,11 +66,12 @@ class PushRuleRestServlet(ClientV1RestServlet):
|
|||
raise SynapseError(400, e.message)
|
||||
|
||||
before = request.args.get("before", None)
|
||||
if before and len(before):
|
||||
before = before[0]
|
||||
if before:
|
||||
before = _namespaced_rule_id(spec, before[0])
|
||||
|
||||
after = request.args.get("after", None)
|
||||
if after and len(after):
|
||||
after = after[0]
|
||||
if after:
|
||||
after = _namespaced_rule_id(spec, after[0])
|
||||
|
||||
try:
|
||||
yield self.hs.get_datastore().add_push_rule(
|
||||
|
@ -452,11 +453,15 @@ def _strip_device_condition(rule):
|
|||
|
||||
|
||||
def _namespaced_rule_id_from_spec(spec):
|
||||
return _namespaced_rule_id(spec, spec['rule_id'])
|
||||
|
||||
|
||||
def _namespaced_rule_id(spec, rule_id):
|
||||
if spec['scope'] == 'global':
|
||||
scope = 'global'
|
||||
else:
|
||||
scope = 'device/%s' % (spec['profile_tag'])
|
||||
return "%s/%s/%s" % (scope, spec['template'], spec['rule_id'])
|
||||
return "%s/%s/%s" % (scope, spec['template'], rule_id)
|
||||
|
||||
|
||||
def _rule_id_from_namespaced(in_rule_id):
|
||||
|
|
|
@ -130,7 +130,8 @@ class PushRuleStore(SQLBaseStore):
|
|||
|
||||
def _add_push_rule_relative_txn(self, txn, user_id, **kwargs):
|
||||
after = kwargs.pop("after", None)
|
||||
relative_to_rule = kwargs.pop("before", after)
|
||||
before = kwargs.pop("before", None)
|
||||
relative_to_rule = before or after
|
||||
|
||||
res = self._simple_select_one_txn(
|
||||
txn,
|
||||
|
|
Loading…
Reference in a new issue