Don't mutate cached values

pull/4/merge
Erik Johnston 9 years ago
parent 74f49f99f9
commit db6e26bb8c
  1. 8
      synapse/push/bulk_push_rule_evaluator.py

@ -55,11 +55,15 @@ def _get_rules(room_id, user_ids, store):
user_enabled_map = rules_enabled_by_user[uid]
for rule in rules_by_user[uid]:
for i, rule in enumerate(rules_by_user[uid]):
rule_id = rule['rule_id']
if rule_id in user_enabled_map:
rule['enabled'] = user_enabled_map[rule_id]
if rule.get('enabled', True) != bool(user_enabled_map[rule_id]):
# Rules are cached across users.
rule = dict(rule)
rule['enabled'] = bool(user_enabled_map[rule_id])
rules_by_user[uid][i] = rule
defer.returnValue(rules_by_user)

Loading…
Cancel
Save