diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2023-05-22 11:31:22 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-22 11:31:22 -0400 |
commit | c5d1e6d414fa7b4074bc72ca3719c1341a1c5379 (patch) | |
tree | 162a4c96efbb420bcfc3faa9b242b28868624580 /synapse/api | |
parent | Bump pygithub from 1.58.1 to 1.58.2 (#15643) (diff) | |
download | synapse-c5d1e6d414fa7b4074bc72ca3719c1341a1c5379.tar.xz |
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.
Diffstat (limited to 'synapse/api')
-rw-r--r-- | synapse/api/filtering.py | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/synapse/api/filtering.py b/synapse/api/filtering.py index de7c56bc0f..82aeef8d19 100644 --- a/synapse/api/filtering.py +++ b/synapse/api/filtering.py @@ -128,20 +128,7 @@ USER_FILTER_SCHEMA = { "account_data": {"$ref": "#/definitions/filter"}, "room": {"$ref": "#/definitions/room_filter"}, "event_format": {"type": "string", "enum": ["client", "federation"]}, - "event_fields": { - "type": "array", - "items": { - "type": "string", - # Don't allow '\\' in event field filters. This makes matching - # events a lot easier as we can then use a negative lookbehind - # assertion to split '\.' If we allowed \\ then it would - # incorrectly split '\\.' See synapse.events.utils.serialize_event - # - # Note that because this is a regular expression, we have to escape - # each backslash in the pattern. - "pattern": r"^((?!\\\\).)*$", - }, - }, + "event_fields": {"type": "array", "items": {"type": "string"}}, }, "additionalProperties": True, # Allow new fields for forward compatibility } |