23 Commits

Author SHA1 Message Date
Kévin Commaille
279c9d0fa6 state-res: Allow invite->knock membership transition
According to spec clarification
2022-10-10 17:29:08 +02:00
Nyaaori
68eecf71af state-res: Fix third party invite validation 2022-10-10 17:20:58 +02:00
Jonas Platte
2c43137f5f
Release ruma-state-res 0.8.0 2022-09-12 21:09:17 +02:00
Kévin Commaille
da462adab1 state-res: Stabilize deserializing stringified integers for PLs
Removes the `compat` feature.
2022-06-27 13:19:25 +02:00
Kévin Commaille
b38efe75c3 state-res: Fix default invite power level
According to matrix-org/matrix-spec#1021
2022-06-27 13:19:25 +02:00
Kévin Commaille
2fcb7315b4 state-res: Add RoomVersion::V10 2022-06-25 18:22:32 +02:00
Kévin Commaille
324c8b09e0
state-res: Add m.federate to the authorization rules 2022-06-25 18:11:57 +02:00
Jonas Platte
4f9e8f0ae5
Release ruma-state-res 0.7.0 2022-04-28 17:56:00 +02:00
gnieto
fca0f6a22b
Minor fix on join member auth rules
Previous code was not checking/enforcing rule 4.3.1
(https://spec.matrix.org/v1.2/rooms/v9/), which states that a room
member event (with a join membership) must be accepted only if it contains
a previous event which `state_key` is the room creator.

On top of that, it simplifies the public interface for `auth_rules`,
removing the need of (externally) compute `prev_event`, which, as a side
effect, should reduce the amount of times the previous event needs to be
fetched: It will only load it if the authorized event is a `m.room_member`
with a `Join` state.

Finally, I've splitted the join conditions so it's (hopefully) more
readable and apply auth rules in the same order as they
appear in the spec.
2022-03-08 08:27:47 +01:00
Jonas Platte
82436b57ba
Release ruma-state-res 0.6.0 2022-02-19 15:05:41 +01:00
Jonas Platte
42db3b3201
Release ruma-state-res 0.5.0 2022-02-19 01:45:06 +01:00
Jonas Platte
9ed75241a6
state-res: Refactor lexicographical_topological_sort
Gets rid of unnecessary copying and makes things more explicit by using
a struct with named fields instead of a tuple for tie breaking.

Co-authored-by: Jonathan de Jong <jonathan@automatia.nl>
2021-11-26 20:22:57 +01:00
Jonas Platte
a9985d7763
events / state-res: Use RawJsonValue over JsonValue for event content 2021-09-15 20:58:42 +02:00
Jonas Platte
09acfb1b0b
Release ruma-state-res 0.4.1 2021-09-01 21:55:04 +02:00
Jonas Platte
50f0327b0b
Release ruma-state-res 0.4.0 2021-08-26 12:33:47 +02:00
Jonas Platte
da5e631640
Release ruma-state-res 0.3.0 2021-08-11 17:56:10 +02:00
Timo Kösters
3a0ee7740f
state-res: Change BTreeMap/Set to HashMap/Set 2021-08-10 15:22:47 +02:00
Timo Kösters
d970501c85
state-res: Revert calculating the auth chain in ruma
In a previous commit I moved the auth chain calculation code to ruma
because I thought I could optimize it by only taking auth chains from
conflicted events instead of all events. It turned out that was wrong
and now I removed that algorithm again (the full auth chains are now
passed in as an argument to state_res::resolve again).
2021-08-10 15:22:47 +02:00
Timo Kösters
17afbabd92
state-res: Calculate auth_events and fix bug when calculating common events 2021-08-10 15:22:46 +02:00
Devin Ragotzy
a4e6cc7c42
state-res: Use closure to fetch unknown events during state-res
state-res: Remove event_map arg from all functions

state-res: Remove get_or_load_event helper func and fix resolve docs
2021-08-10 15:22:26 +02:00
Jonas Platte
5a1192f158
Release ruma-state-res 0.2.0 2021-06-21 18:03:39 +02:00
Jonas Platte
e5e2cde421
Release ruma-state-res 0.1.0 2021-05-17 01:50:19 +02:00
Jonas Platte
6f8d43ccbb
state-res: Prepare for publishing 2021-05-17 01:48:28 +02:00