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 canKick: Boolean,
val canBan: Boolean, val canBan: Boolean,
) { ) {
// Unban requires both kick and ban permission instead of a dedicated unban permission
val canUnban = canBan && canKick
companion object { companion object {
val DEFAULT = RoomMemberModerationPermissions( val DEFAULT = RoomMemberModerationPermissions(
canKick = false, canKick = false,

View file

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