Display banned users in room member list (#2415)

* Display banned users in room member list

---------

Co-authored-by: ElementBot <benoitm+elementbot@element.io>
This commit is contained in:
Jorge Martin Espinosa 2024-02-20 10:07:06 +01:00 committed by GitHub
parent 9669f84766
commit e68139bf46
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 197 additions and 31 deletions

View file

@ -129,6 +129,8 @@ interface MatrixRoom : Closeable {
suspend fun canUserInvite(userId: UserId): Result<Boolean>
suspend fun canUserBan(userId: UserId): Result<Boolean>
suspend fun canUserRedactOwn(userId: UserId): Result<Boolean>
suspend fun canUserRedactOther(userId: UserId): Result<Boolean>

View file

@ -25,6 +25,11 @@ import io.element.android.libraries.matrix.api.room.StateEventType
*/
suspend fun MatrixRoom.canInvite(): Result<Boolean> = canUserInvite(sessionId)
/**
* Shortcut for calling [MatrixRoom.canBanUser] with our own user.
*/
suspend fun MatrixRoom.canBan(): Result<Boolean> = canUserBan(sessionId)
/**
* Shortcut for calling [MatrixRoom.canUserSendState] with our own user.
*/

View file

@ -319,6 +319,12 @@ class RustMatrixRoom(
}
}
override suspend fun canUserBan(userId: UserId): Result<Boolean> {
return runCatching {
innerRoom.canUserBan(userId.value)
}
}
override suspend fun canUserRedactOwn(userId: UserId): Result<Boolean> {
return runCatching {
innerRoom.canUserRedactOwn(userId.value)

View file

@ -90,6 +90,7 @@ class FakeMatrixRoom(
private var joinRoomResult = Result.success(Unit)
private var inviteUserResult = Result.success(Unit)
private var canInviteResult = Result.success(true)
private var canBanResult = Result.success(false)
private var canRedactOwnResult = Result.success(canRedactOwn)
private var canRedactOtherResult = Result.success(canRedactOther)
private val canSendStateResults = mutableMapOf<StateEventType, Result<Boolean>>()
@ -280,6 +281,10 @@ class FakeMatrixRoom(
inviteUserResult
}
override suspend fun canUserBan(userId: UserId): Result<Boolean> {
return canBanResult
}
override suspend fun canUserInvite(userId: UserId): Result<Boolean> {
return canInviteResult
}
@ -495,6 +500,10 @@ class FakeMatrixRoom(
joinRoomResult = result
}
fun givenCanBanResult(result: Result<Boolean>) {
canBanResult = result
}
fun givenInviteUserResult(result: Result<Unit>) {
inviteUserResult = result
}

View file

@ -120,6 +120,7 @@
<string name="common_error">"Error"</string>
<string name="common_everyone">"Everyone"</string>
<string name="common_favourite">"Favourite"</string>
<string name="common_favourited">"Favourited"</string>
<string name="common_file">"File"</string>
<string name="common_file_saved_on_disk_android">"File saved to Downloads"</string>
<string name="common_forward_message">"Forward message"</string>