summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Baker <dave@matrix.org>2015-01-30 15:02:21 +0000
committerDavid Baker <dave@matrix.org>2015-01-30 15:03:56 +0000
commit4ffac34a646fa2e763ba9214199d7803d1174959 (patch)
treeb62b75f11bd1f62c5e83a41e9a24f3d5cd7ede4c
parentMerge pull request #40 from matrix-org/rejections_storage (diff)
downloadsynapse-4ffac34a646fa2e763ba9214199d7803d1174959.tar.xz
Add glob asterisks when running rules.
Means that now you can't do exact matches even in override rules,
but I think we can live with that. Advantage is that you'll now
always get back what was put in to the API.
-rw-r--r--synapse/push/__init__.py5
-rw-r--r--synapse/rest/client/v1/push_rule.py5
2 files changed, 6 insertions, 4 deletions
diff --git a/synapse/push/__init__.py b/synapse/push/__init__.py
index cc05278c8c..6a302305fb 100644
--- a/synapse/push/__init__.py
+++ b/synapse/push/__init__.py
@@ -137,6 +137,11 @@ class Pusher(object):
                 return False
             pat = condition['pattern']
 
+            if pat.strip("*?[]") == pat:
+                # no special glob characters so we assume the user means
+                # 'contains this string' rather than 'is this string'
+                pat = "*%s*" % (pat,)
+
             val = _value_for_dotted_key(condition['key'], ev)
             if val is None:
                 return False
diff --git a/synapse/rest/client/v1/push_rule.py b/synapse/rest/client/v1/push_rule.py
index 0f78fa667c..61e3bc8236 100644
--- a/synapse/rest/client/v1/push_rule.py
+++ b/synapse/rest/client/v1/push_rule.py
@@ -98,10 +98,7 @@ class PushRuleRestServlet(ClientV1RestServlet):
             if 'pattern' not in req_obj:
                 raise InvalidRuleException("Content rule missing 'pattern'")
             pat = req_obj['pattern']
-            if pat.strip("*?[]") == pat:
-                # no special glob characters so we assume the user means
-                # 'contains this string' rather than 'is this string'
-                pat = "*%s*" % (pat,)
+
             conditions = [{
                 'kind': 'event_match',
                 'key': 'content.body',