15 Commits

Author SHA1 Message Date
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