From 3f3c06134cbc8b27943d8580c2437513022f7fa2 Mon Sep 17 00:00:00 2001 From: Sojan Date: Fri, 24 May 2024 16:15:20 -0700 Subject: [PATCH] chore: experimenting conversations permissions --- .../dashboard/components/ChatList.vue | 29 ++++++++++++++----- .../conversation/conversation.routes.js | 1 + 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/app/javascript/dashboard/components/ChatList.vue b/app/javascript/dashboard/components/ChatList.vue index 60966b476..4e8a31e67 100644 --- a/app/javascript/dashboard/components/ChatList.vue +++ b/app/javascript/dashboard/components/ChatList.vue @@ -320,14 +320,27 @@ export default { unassigned: 'unAssignedCount', all: 'allCount', }; - return Object.keys(ASSIGNEE_TYPE_TAB_KEYS).map(key => { - const count = this.conversationStats[ASSIGNEE_TYPE_TAB_KEYS[key]] || 0; - return { - key, - name: this.$t(`CHAT_LIST.ASSIGNEE_TYPE_TABS.${key}`), - count, - }; - }); + const userPermissions = this.currentUser.permissions; + const allowedTabs = { + me: + userPermissions.includes('conversation_manage') || + userPermissions.includes('conversation_participating_manage'), + unassigned: + userPermissions.includes('conversation_manage') || + userPermissions.includes('conversation_unassigned_manage'), + all: true, + }; + return Object.keys(allowedTabs) + .filter(key => allowedTabs[key]) + .map(key => { + const count = + this.conversationStats[ASSIGNEE_TYPE_TAB_KEYS[key]] || 0; + return { + key, + name: this.$t(`CHAT_LIST.ASSIGNEE_TYPE_TABS.${key}`), + count, + }; + }); }, showAssigneeInConversationCard() { return ( diff --git a/app/javascript/dashboard/routes/dashboard/conversation/conversation.routes.js b/app/javascript/dashboard/routes/dashboard/conversation/conversation.routes.js index 6d39fb00d..2126f98b7 100644 --- a/app/javascript/dashboard/routes/dashboard/conversation/conversation.routes.js +++ b/app/javascript/dashboard/routes/dashboard/conversation/conversation.routes.js @@ -4,6 +4,7 @@ import { frontendURL } from '../../../helper/URLHelper'; const ConversationView = () => import('./ConversationView'); const GENERIC_CONVERSATION_PERMISSIONS = [ + ACCOUNT_PERMISSIONS.ACCOUNT_MANAGE, ACCOUNT_PERMISSIONS.CONVERSATION_MANAGE, ACCOUNT_PERMISSIONS.CONVERSATION_PARTICIPATING_MANAGE, ACCOUNT_PERMISSIONS.CONVERSATION_UNASSIGNED_MANAGE,