mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
quality : move canUnban logic to the permission class
This commit is contained in:
+3
@@ -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,
|
||||||
|
|||||||
+1
-2
@@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user