1 files changed, 7 insertions, 1 deletions
diff --git a/synapse/event_auth.py b/synapse/event_auth.py
index 3a260a492b..531bb74f07 100644
--- a/synapse/event_auth.py
+++ b/synapse/event_auth.py
@@ -669,12 +669,18 @@ def _is_membership_change_allowed(
errcode=Codes.INSUFFICIENT_POWER,
)
elif Membership.BAN == membership:
- if user_level < ban_level or user_level <= target_level:
+ if user_level < ban_level:
raise UnstableSpecAuthError(
403,
"You don't have permission to ban",
errcode=Codes.INSUFFICIENT_POWER,
)
+ elif user_level <= target_level:
+ raise UnstableSpecAuthError(
+ 403,
+ "You don't have permission to ban this user",
+ errcode=Codes.INSUFFICIENT_POWER,
+ )
elif room_version.knock_join_rule and Membership.KNOCK == membership:
if join_rule != JoinRules.KNOCK and (
not room_version.knock_restricted_join_rule
|