From 36383dfcc6a4672233614f24d79431ad23c49603 Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 10 May 2022 17:07:56 +0200 Subject: [PATCH] don't allow to post/delete reaction without permission Signed-off-by: Marcel Hibbe --- .../java/com/nextcloud/talk/controllers/ChatController.kt | 2 ++ .../com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt | 8 +++++--- .../com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt index cd57dd912..70e999f8c 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt +++ b/app/src/main/java/com/nextcloud/talk/controllers/ChatController.kt @@ -2492,6 +2492,7 @@ class ChatController(args: Bundle) : currentConversation, chatMessage, conversationUser, + hasChatPermission, ncApi!! ).show() } @@ -2519,6 +2520,7 @@ class ChatController(args: Bundle) : conversationUser, currentConversation, isShowMessageDeletionButton(message), + hasChatPermission, ncApi!! ).show() } diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt index da085c583..38ffb2a8d 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/MessageActionsDialog.kt @@ -58,6 +58,7 @@ class MessageActionsDialog( private val user: UserEntity?, private val currentConversation: Conversation?, private val showMessageDeletionButton: Boolean, + private val hasChatPermission: Boolean, private val ncApi: NcApi ) : BottomSheetDialog(chatController.activity!!, R.style.BottomSheetDialogThemeNoFloating) { @@ -71,7 +72,7 @@ class MessageActionsDialog( setContentView(dialogMessageActionsBinding.root) window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) - initEmojiBar() + initEmojiBar(hasChatPermission) initMenuItemCopy(!message.isDeleted) initMenuReplyToMessage(message.replyable) initMenuReplyPrivately( @@ -160,8 +161,9 @@ class MessageActionsDialog( } } - private fun initEmojiBar() { - if (CapabilitiesUtil.hasSpreedFeatureCapability(user, "reactions") && + private fun initEmojiBar(hasChatPermission: Boolean) { + if (hasChatPermission && + CapabilitiesUtil.hasSpreedFeatureCapability(user, "reactions") && Conversation.ConversationReadOnlyState.CONVERSATION_READ_ONLY != currentConversation?.conversationReadOnlyState && isReactableMessageType(message) diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt index a9711ec24..d28fb9220 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/ShowReactionsDialog.kt @@ -63,6 +63,7 @@ class ShowReactionsDialog( private val currentConversation: Conversation?, private val chatMessage: ChatMessage, private val userEntity: UserEntity?, + private val hasChatPermission: Boolean, private val ncApi: NcApi ) : BottomSheetDialog(activity), ReactionItemClickListener { @@ -183,7 +184,7 @@ class ShowReactionsDialog( } override fun onClick(reactionItem: ReactionItem) { - if (reactionItem.reactionVoter.actorId?.equals(userEntity?.userId) == true) { + if (hasChatPermission && reactionItem.reactionVoter.actorId?.equals(userEntity?.userId) == true) { deleteReaction(chatMessage, reactionItem.reaction!!) dismiss() }