quality : move canUnban logic to the permission class

This commit is contained in:
ganfra
2025-12-30 15:59:04 +01:00
parent 0fd5c58a35
commit ad0b1e33f9
2 changed files with 4 additions and 2 deletions

View File

@@ -13,6 +13,9 @@ data class RoomMemberModerationPermissions(
val canKick: Boolean,
val canBan: Boolean,
) {
// Unban requires both kick and ban permission instead of a dedicated unban permission
val canUnban = canBan && canKick
companion object {
val DEFAULT = RoomMemberModerationPermissions(
canKick = false,

View File

@@ -163,8 +163,7 @@ class RoomMemberModerationPresenter(
val membership = member?.membership ?: RoomMembershipState.JOIN
when (membership) {
RoomMembershipState.BAN -> {
// Unban requires both kick and ban permission instead of a dedicated unban permission
if (permissions.canBan && permissions.canKick) {
if (permissions.canUnban) {
add(ModerationActionState(action = ModerationAction.UnbanUser, isEnabled = canModerateThisUser))
}
}