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.MessageSwipeActions
|
||||||
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
|
import com.nextcloud.talk.ui.recyclerview.MessageSwipeCallback
|
||||||
import com.nextcloud.talk.utils.ApiUtils
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
|
import com.nextcloud.talk.utils.AttendeePermissionsUtil
|
||||||
import com.nextcloud.talk.utils.ConductorRemapping
|
import com.nextcloud.talk.utils.ConductorRemapping
|
||||||
import com.nextcloud.talk.utils.ConductorRemapping.remapChatController
|
import com.nextcloud.talk.utils.ConductorRemapping.remapChatController
|
||||||
import com.nextcloud.talk.utils.ContactUtils
|
import com.nextcloud.talk.utils.ContactUtils
|
||||||
@ -2831,6 +2832,8 @@ class ChatController(args: Bundle) :
|
|||||||
|
|
||||||
if (!CapabilitiesUtil.hasSpreedFeatureCapability(conversationUser, "delete-messages")) return false
|
if (!CapabilitiesUtil.hasSpreedFeatureCapability(conversationUser, "delete-messages")) return false
|
||||||
|
|
||||||
|
if (AttendeePermissionsUtil(currentConversation!!.permissions).canPostChatShareItemsDoReaction(conversationUser)) return true
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,12 @@
|
|||||||
package com.nextcloud.talk.utils
|
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
|
* see https://nextcloud-talk.readthedocs.io/en/latest/constants/#attendee-permissions
|
||||||
*/
|
*/
|
||||||
class AttendeePermissionsUtil(flag: Int) {
|
class AttendeePermissionsUtil(flag: Int) {
|
||||||
|
|
||||||
var isDefault: Boolean = false
|
var isDefault: Boolean = false
|
||||||
var isCustom: Boolean = false
|
var isCustom: Boolean = false
|
||||||
var canStartCall: Boolean = false
|
var canStartCall: Boolean = false
|
||||||
@ -13,7 +15,7 @@ class AttendeePermissionsUtil(flag: Int) {
|
|||||||
var canPublishAudio: Boolean = false
|
var canPublishAudio: Boolean = false
|
||||||
var canPublishVideo: Boolean = false
|
var canPublishVideo: Boolean = false
|
||||||
var canPublishScreen: Boolean = false
|
var canPublishScreen: Boolean = false
|
||||||
var canPostChatShareItemsDoReaction: Boolean = false
|
private var canPostChatShareItemsDoReaction: Boolean = false
|
||||||
|
|
||||||
init {
|
init {
|
||||||
isDefault = (flag and DEFAULT) == DEFAULT
|
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
|
(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 {
|
companion object {
|
||||||
|
val TAG = AttendeePermissionsUtil::class.simpleName
|
||||||
const val DEFAULT = 0
|
const val DEFAULT = 0
|
||||||
const val CUSTOM = 1
|
const val CUSTOM = 1
|
||||||
const val START_CALL = 2
|
const val START_CALL = 2
|
||||||
|
@ -22,6 +22,7 @@ class AttendeePermissionsUtilTest : TestCase() {
|
|||||||
assertFalse(attendeePermissionsUtil.canIgnoreLobby)
|
assertFalse(attendeePermissionsUtil.canIgnoreLobby)
|
||||||
assertFalse(attendeePermissionsUtil.canPublishAudio)
|
assertFalse(attendeePermissionsUtil.canPublishAudio)
|
||||||
assertFalse(attendeePermissionsUtil.canPublishVideo)
|
assertFalse(attendeePermissionsUtil.canPublishVideo)
|
||||||
assertFalse(attendeePermissionsUtil.canPostChatShareItemsDoReaction)
|
|
||||||
|
// canPostChatShareItemsDoReaction() is not possible to test because userEntity is necessary
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user