fix: use correct state key

This commit is contained in:
Timo Kösters 2021-04-13 21:31:43 +02:00 committed by Devin Ragotzy
parent 4015ced5ea
commit 30b4e1d597
2 changed files with 10 additions and 1 deletions

View File

@ -336,6 +336,7 @@ pub fn valid_membership_change<E: Event>(
let key = (EventType::RoomMember, target_user_id.to_string());
let current = auth_events.get(&key);
let current_membership =
current.map_or(Ok::<_, Error>(member::MembershipState::Leave), |pdu| {
Ok(serde_json::from_value::<room::member::MembershipState>(

View File

@ -510,7 +510,15 @@ impl StateResolution {
for aid in &event.auth_events() {
if let Ok(ev) = StateResolution::get_or_load_event(room_id, &aid, event_map) {
// TODO synapse check "rejected_reason", I'm guessing this is redacted_because in ruma ??
auth_events.insert((ev.kind(), state_key.clone()), ev);
auth_events.insert(
(
ev.kind(),
ev.state_key().ok_or_else(|| {
Error::InvalidPdu("State event had no state key".to_owned())
})?,
),
ev,
);
} else {
log::warn!("auth event id for {} is missing {}", aid, event_id);
}