Add enable/disable overlay for push rules (REST API not yet hooked up)

This commit is contained in:
David Baker 2015-02-25 19:17:07 +00:00
parent a025055643
commit 94fa334b01
5 changed files with 46 additions and 0 deletions

View file

@ -82,6 +82,8 @@ class Pusher(object):
r['conditions'] = json.loads(r['conditions'])
r['actions'] = json.loads(r['actions'])
enabled_map = yield self.store.get_push_rules_enabled_for_user_name(self.user_name)
user = UserID.from_string(self.user_name)
rules = baserules.list_with_base_rules(rawrules, user)
@ -107,6 +109,8 @@ class Pusher(object):
room_member_count += 1
for r in rules:
if r['rule_id'] in enabled_map and not enabled_map[r['rule_id']]:
continue
matches = True
conditions = r['conditions']

View file

@ -45,6 +45,7 @@ def make_base_rules(user, kind):
def make_base_content_rules(user):
return [
{
'rule_id': '.m.rule.contains_user_name',
'conditions': [
{
'kind': 'event_match',
@ -66,6 +67,7 @@ def make_base_content_rules(user):
def make_base_override_rules():
return [
{
'rule_id': '.m.rule.contains_display_name',
'conditions': [
{
'kind': 'contains_display_name'
@ -80,6 +82,7 @@ def make_base_override_rules():
]
},
{
'rule_id': '.m.rule.room_two_members',
'conditions': [
{
'kind': 'room_member_count',