quality : move canUnban logic to the permission class
This commit is contained in:
parent
0fd5c58a35
commit
ad0b1e33f9
2 changed files with 4 additions and 2 deletions
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue