fix: Incorrect interpretation of 5.5.4

This commit is contained in:
nexy7574
2025-10-09 00:44:20 +01:00
committed by Tom Foster
parent 8b3acfd770
commit 28f258fc8c
+7 -3
View File
@@ -1011,7 +1011,7 @@ where
}, },
| MembershipState::Leave => { | MembershipState::Leave => {
let can_unban = if target_user_current_membership == MembershipState::Ban { let can_unban = if target_user_current_membership == MembershipState::Ban {
sender_creator || sender_power.filter(|&p| p < &power_levels.ban).is_some() sender_creator || sender_power.filter(|&p| p >= &power_levels.ban).is_some()
} else { } else {
true true
}; };
@@ -1019,7 +1019,11 @@ where
target_user_current_membership, target_user_current_membership,
MembershipState::Ban | MembershipState::Leave MembershipState::Ban | MembershipState::Leave
) { ) {
sender_creator || sender_power.filter(|&p| p < &power_levels.kick).is_some() sender_creator
|| (sender_power.filter(|&p| p < &power_levels.kick).is_some()
&& sender_power
.filter(|&p| p > target_power.unwrap_or(&int!(0)))
.is_some())
} else { } else {
true true
}; };
@@ -1049,7 +1053,7 @@ where
"sender cannot kick another user as they are not joined to the room", "sender cannot kick another user as they are not joined to the room",
); );
false false
} else if !can_unban { } else if !(can_unban && can_kick) {
// If the target is banned, only a room creator or someone with ban power // If the target is banned, only a room creator or someone with ban power
// level can unban them // level can unban them
warn!( warn!(