From e6cae5b8eda99337ca78b1500e913932f966c9f4 Mon Sep 17 00:00:00 2001 From: Ginger Date: Wed, 29 Apr 2026 12:45:15 -0400 Subject: [PATCH] fix: Fix membership check in kick handler --- src/api/client/membership/kick.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/api/client/membership/kick.rs b/src/api/client/membership/kick.rs index 2e8341732..75160990a 100644 --- a/src/api/client/membership/kick.rs +++ b/src/api/client/membership/kick.rs @@ -24,9 +24,14 @@ pub(crate) async fn kick_user_route( if !services .rooms .state_cache - .is_joined(&body.user_id, &body.room_id) + .user_membership(&body.user_id, &body.room_id) .await - { + .is_some_and(|membership| { + matches!( + membership, + MembershipState::Invite | MembershipState::Join | MembershipState::Knock + ) + }) { return Err!(Request(Forbidden("You cannot kick users who are not in the room."))); }