2259 Commits

Author SHA1 Message Date
Jonas Platte
54a4223caa client-api: Fix type of SlidingSyncRoom#invite_state 2023-04-27 19:27:05 +02:00
Kévin Commaille
b50037affc events: Implement sanitize on MessageType 2023-04-27 19:19:37 +02:00
Jonas Platte
44ed922ba2
events: Remove unnecessary Option around sliding sync extension types 2023-04-27 17:56:29 +02:00
Jonas Platte
1224dd3810
events: Add more convenient power level action checks to RoomPowerLevels 2023-04-27 12:20:11 +02:00
Kévin Commaille
af2407e98a client-api: Add M_DUPLICATE_ANNOTATION error kind
According to MSC2677
2023-04-26 16:02:19 +02:00
Jonas Platte
cb512f01d6
macros: Fix weird indentation 2023-04-24 17:02:23 +02:00
Jonas Platte
53622f8ce0
macros: Upgrade syn to 2.0 2023-04-24 17:02:23 +02:00
Kévin Commaille
4105169577 push: Panic on Regex construction error 2023-04-24 17:00:01 +02:00
Kévin Commaille
ed7c26ff9f push: Use bytes Regex to fix regex construction
Due to a new error detected in the regex crate.
2023-04-24 17:00:01 +02:00
Jonas Platte
4c85fe9c78
Replace compat feature with more fine-grained compat-* features
… and document them.
2023-04-20 14:00:27 +02:00
Jonas Platte
57b7b2d0f5
Add context to compat attribute 2023-04-20 13:02:30 +02:00
Jonas Platte
89e398fd06
events: Add back relations accessors for message-like event enums 2023-04-18 11:33:54 +02:00
Jonas Platte
0bbad284f3
events: Add RoomRedactionUnsigned 2023-04-18 11:16:56 +02:00
Kévin Commaille
2bf33def5c client-api: Remove token from keys::get_keys::Request
According to a spec clarification.
2023-04-17 16:11:38 +02:00
Jonas Platte
fea6299935
Fix broken doc comment
Thanks clippy!
2023-04-12 19:19:17 +02:00
Jonas Platte
1229fa4461
events: Add FullStateEventContent::redact 2023-04-11 16:16:32 +02:00
Kévin Commaille
2ccc0323f6 push: Add support for event_property_contains push condition
According to MSC3966
2023-04-11 16:12:05 +02:00
Kévin Commaille
2e7b67bb23 push: Add support for event_property_is push condition
According to MSC3758
2023-04-11 16:12:05 +02:00
Kévin Commaille
82b4257bfe push: Split push conditions tests 2023-04-11 16:12:05 +02:00
Kévin Commaille
33fa1b48ed push: Collect a bigger subset of JSON values in FlattenedJson 2023-04-11 16:12:05 +02:00
Kévin Commaille
cdfcdecaf8 push: Move FlattenedJson to its own module 2023-04-11 16:12:05 +02:00
Kévin Commaille
c1a36a2047 client-api: Mention that backslashes should be escaped in filter event_fields
According to MSC3980
2023-04-11 11:18:20 +02:00
Kévin Commaille
ef374ea6b0 push: Escape dots and backslashes in field name for event_match condition
According to MSC3873
2023-04-11 11:18:20 +02:00
Ivan Enderlin
66f417c3f2 chore: Make Clippy happy. 2023-04-06 14:51:25 +02:00
Ivan Enderlin
fe3a8ff669 feat(client-api): Support bump_event_types in sync::sync_events::v4::Request.
This patch updates `sync::sync_events::v4::Request` to add the new
`bump_event_types` field, as described in [MSC3575] (more precisely in
this [diff]).

That's the first step to address https://github.com/matrix-org/matrix-rust-sdk/issues/1728.

[MSC3575]: https://github.com/matrix-org/matrix-spec-proposals/blob/kegan/sync-v3/proposals/3575-sync.md
[diff]: 35b79f6ebe...5bd13e66df (diff-1f7276cbbee4eeaaca06b07d2fe58312eab735259f2490e28e04710dde77fdccL78)
2023-04-06 14:51:25 +02:00
Jonas Platte
e61e0ccf6b
Implement MSC3925
… without a feature flag because it is a breaking change, so the feature
would have to be non-additive, which is a no-go.
Limited support for the previous replacement format is kept.
2023-03-15 14:49:51 +01:00
Jonas Platte
19d44489c3
events: Split bundled relations into two types
One for message-like events, one for state events.
2023-03-15 14:49:49 +01:00
Jonas Platte
0599eb1226
macros: Fix confusing name of local bindings 2023-03-15 12:33:09 +01:00
Jonas Platte
f79c51f18f
Fix a typo 2023-03-15 11:07:27 +01:00
Kévin Commaille
8eea3e0549 push: Enable by default .m.rule.tombstone push rule
As defined in the spec.
2023-03-14 12:01:40 +01:00
Kévin Commaille
27a2c07df9 events: Add constants for the verification requests timeouts 2023-03-13 17:12:49 +01:00
Kévin Commaille
a399a4017a
push: Add convenience methods to check if an action triggers a notification or a sound 2023-03-13 13:54:22 +01:00
Kévin Commaille
b6717bc2ea
push: Add convenience method to check if an action is a highlight tweak 2023-03-13 13:36:56 +01:00
Jonas Platte
03a58bcd88
Fix return type of InitialStateEvent::to_raw_any 2023-03-10 12:51:58 +01:00
Jonas Platte
1af28486cc events: Implement Default for EmptyStateKey 2023-03-10 12:33:55 +01:00
Jonas Platte
4049969d8c events: Implement Default for InitialStateEvent
… where C has an empty state key and implements Default itself.
2023-03-10 12:33:55 +01:00
Kévin Commaille
d56386a636 events: Add link to definition of m.room.encryption recommended defaults 2023-03-10 11:41:53 +01:00
Kévin Commaille
8a3bccaef1 client-api: Fix type of rank in search::search_events::v3::SearchResult
It is defined in the spec as a number, not an integer.
2023-03-10 11:19:32 +01:00
Kévin Commaille
0596e46045 events: Add method to construct RoomEncryptionEventContent with the recommended defaults 2023-03-10 11:13:37 +01:00
Jonas Platte
25be562036
Update trybuild output 2023-03-10 10:59:52 +01:00
Jonas Platte
4eb5033dd0
events: Add utility functions for InitialStateEvent 2023-03-09 18:58:56 +01:00
kegsay
543c03f8f2
client-api: Use the right EDU types in sliding sync 2023-03-08 13:28:53 +01:00
Jonas Platte
01acabe8a6
identifiers: Implement AsRef<[u8]> for owned ID types 2023-03-07 11:18:14 +01:00
Jonas Platte
5aa0f29935
identifiers: Add AsRef<[u8]> impls for ID types 2023-03-07 11:06:34 +01:00
kegsay
471c46273a
client-api: Fix typo in sliding sync extensions
It has always been `receipts` not `receipt`.
2023-03-06 18:42:03 +01:00
Kévin Commaille
44daf84e46 client-api: Allow to convert AnyPushRule(Ref) to PushRule 2023-03-02 11:30:48 +01:00
Kévin Commaille
ba296ec466 push: Add method to remove a user-defined push rule from a Ruleset 2023-03-02 11:30:48 +01:00
Kévin Commaille
a78d2a7dcf push: Add method to update server-default push rules 2023-03-02 11:30:48 +01:00
Kévin Commaille
c44e0b5e5a push: Fix ordering of docs 2023-03-02 11:30:48 +01:00
gnieto
7565588be7
signatures: Prevent accepting events without at least one valid signature
`verify_event` has been changed recently to be more aligned with the
spec. In the previous algorithm, it returned an error if the event was
not signed by at least one of the required entities.

The new algortihm is iterating over all the signtures for the required
entities *and* skipping unknown algorithms. If an event is signed only
by unkonwn algorithms, the event would be accepted and not verifications
will happen. In order to prevent that, we check that, at least, a single
key is checked. This covers the 2nd point in: https://spec.matrix.org/v1.6/appendices/#checking-for-a-signature

A few more test cases were added:

- The event is properly signed, but key map contains a key with an
  unknown algorithm. Under this circumstances, the event should be
  allowed.
- An event signed by multiple keys for an entity, should verify all
  those signatures
- An event signed by a single key with an unkown algorithm by the
  required entity, should fail
2023-03-02 09:34:57 +00:00