Don't mutate cached values

pull/527/head
Erik Johnston 2016-01-22 16:03:55 +00:00
parent 74f49f99f9
commit db6e26bb8c
1 changed files with 6 additions and 2 deletions

View File

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