mirror of
https://github.com/nextcloud/talk-android
synced 2025-02-02 20:53:09 +00:00
check capability and permission to delete message
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
d9d6af2b99
commit
cc6f582ee2
@ -147,6 +147,7 @@ import com.nextcloud.talk.ui.dialog.ShowReactionsDialog
|
||||
import com.nextcloud.talk.ui.recyclerview.MessageSwipeActions
|
||||
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
|
||||
import com.nextcloud.talk.utils.ApiUtils
|
||||
import com.nextcloud.talk.utils.AttendeePermissionsUtil
|
||||
import com.nextcloud.talk.utils.ConductorRemapping
|
||||
import com.nextcloud.talk.utils.ConductorRemapping.remapChatController
|
||||
import com.nextcloud.talk.utils.ContactUtils
|
||||
@ -2831,6 +2832,8 @@ class ChatController(args: Bundle) :
|
||||
|
||||
if (!CapabilitiesUtil.hasSpreedFeatureCapability(conversationUser, "delete-messages")) return false
|
||||
|
||||
if (AttendeePermissionsUtil(currentConversation!!.permissions).canPostChatShareItemsDoReaction(conversationUser)) return true
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -1,10 +1,12 @@
|
||||
package com.nextcloud.talk.utils
|
||||
|
||||
import com.nextcloud.talk.models.database.CapabilitiesUtil
|
||||
import com.nextcloud.talk.models.database.UserEntity
|
||||
|
||||
/**
|
||||
* see https://nextcloud-talk.readthedocs.io/en/latest/constants/#attendee-permissions
|
||||
*/
|
||||
class AttendeePermissionsUtil(flag: Int) {
|
||||
|
||||
var isDefault: Boolean = false
|
||||
var isCustom: Boolean = false
|
||||
var canStartCall: Boolean = false
|
||||
@ -13,7 +15,7 @@ class AttendeePermissionsUtil(flag: Int) {
|
||||
var canPublishAudio: Boolean = false
|
||||
var canPublishVideo: Boolean = false
|
||||
var canPublishScreen: Boolean = false
|
||||
var canPostChatShareItemsDoReaction: Boolean = false
|
||||
private var canPostChatShareItemsDoReaction: Boolean = false
|
||||
|
||||
init {
|
||||
isDefault = (flag and DEFAULT) == DEFAULT
|
||||
@ -28,7 +30,16 @@ class AttendeePermissionsUtil(flag: Int) {
|
||||
(flag and POST_CHAT_SHARE_ITEMS_DO_REACTIONS) == POST_CHAT_SHARE_ITEMS_DO_REACTIONS
|
||||
}
|
||||
|
||||
fun canPostChatShareItemsDoReaction(user: UserEntity): Boolean {
|
||||
if (CapabilitiesUtil.hasSpreedFeatureCapability(user, "chat-permission")) {
|
||||
return canPostChatShareItemsDoReaction
|
||||
}
|
||||
// if capability is not available the spreed version doesn't support to restrict this
|
||||
return true
|
||||
}
|
||||
|
||||
companion object {
|
||||
val TAG = AttendeePermissionsUtil::class.simpleName
|
||||
const val DEFAULT = 0
|
||||
const val CUSTOM = 1
|
||||
const val START_CALL = 2
|
||||
|
@ -22,6 +22,7 @@ class AttendeePermissionsUtilTest : TestCase() {
|
||||
assertFalse(attendeePermissionsUtil.canIgnoreLobby)
|
||||
assertFalse(attendeePermissionsUtil.canPublishAudio)
|
||||
assertFalse(attendeePermissionsUtil.canPublishVideo)
|
||||
assertFalse(attendeePermissionsUtil.canPostChatShareItemsDoReaction)
|
||||
|
||||
// canPostChatShareItemsDoReaction() is not possible to test because userEntity is necessary
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user