mirror of
https://github.com/element-hq/synapse.git
synced 2025-09-17 11:05:10 +02:00
Properly parse event_fields in filters (#15607)
The event_fields property in filters should use the proper escape rules, namely backslashes can be escaped with an additional backslash. This adds tests (adapted from matrix-js-sdk) and implements the logic to properly split the event_fields strings.
This commit is contained in:
@@ -48,8 +48,6 @@ class FilteringTestCase(unittest.HomeserverTestCase):
|
||||
invalid_filters: List[JsonDict] = [
|
||||
# `account_data` must be a dictionary
|
||||
{"account_data": "Hello World"},
|
||||
# `event_fields` entries must not contain backslashes
|
||||
{"event_fields": [r"\\foo"]},
|
||||
# `event_format` must be "client" or "federation"
|
||||
{"event_format": "other"},
|
||||
# `not_rooms` must contain valid room IDs
|
||||
@@ -114,10 +112,6 @@ class FilteringTestCase(unittest.HomeserverTestCase):
|
||||
"event_format": "client",
|
||||
"event_fields": ["type", "content", "sender"],
|
||||
},
|
||||
# a single backslash should be permitted (though it is debatable whether
|
||||
# it should be permitted before anything other than `.`, and what that
|
||||
# actually means)
|
||||
#
|
||||
# (note that event_fields is implemented in
|
||||
# synapse.events.utils.serialize_event, and so whether this actually works
|
||||
# is tested elsewhere. We just want to check that it is allowed through the
|
||||
|
||||
Reference in New Issue
Block a user