From 97e2fb6df13f65532d33fc2f0f097ad5a449dd70 Mon Sep 17 00:00:00 2001 From: strawberry Date: Wed, 20 Nov 2024 22:57:53 -0500 Subject: [PATCH] state-res: fix allow knock -> leave on same state_key and sender Signed-off-by: strawberry --- crates/ruma-state-res/src/event_auth.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/ruma-state-res/src/event_auth.rs b/crates/ruma-state-res/src/event_auth.rs index c5529be3..ea79bc62 100644 --- a/crates/ruma-state-res/src/event_auth.rs +++ b/crates/ruma-state-res/src/event_auth.rs @@ -659,9 +659,14 @@ fn valid_membership_change( MembershipState::Leave => { if sender == target_user { let allow = target_user_current_membership == MembershipState::Join - || target_user_current_membership == MembershipState::Invite; + || target_user_current_membership == MembershipState::Invite + || target_user_current_membership == MembershipState::Knock; if !allow { - warn!(?target_user_membership_event_id, "Can't leave if not invited or joined"); + warn!( + ?target_user_membership_event_id, + ?target_user_current_membership, + "Can't leave if sender is not already invited, knocked, or joined" + ); } allow } else if !sender_is_joined