This pull request includes multiple changes to the sidebar and route metas to configure visibility of features on the dashboard. Here's a summary of the changes 1. Added `installationTypes`, field to routes `meta`, this works along side `permissions` and `featureFlags` This allows us to decide weather a particular feature is accessible on a particular type. For instance, the Billing pages should only be available on Cloud 2. Updated `usePolicy` and `policy.vue` to use the new `installationTypes` config 3. Updated Sidebar related components to remove `showOnlyOnCloud` to use the new policy updates. Testing the PR Here's the matrix of cases: https://docs.google.com/spreadsheets/d/15AAJntJZoyudaby77BOnRcC4435FGuT7PXbUXoTyU50/edit?usp=sharing --------- Co-authored-by: Pranav <pranav@chatwoot.com> Co-authored-by: Sojan Jose <sojan@pepalo.com> Co-authored-by: Pranav <pranavrajs@gmail.com>
65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
|
|
import { INSTALLATION_TYPES } from 'dashboard/constants/installationTypes';
|
|
import { frontendURL } from '../../../helper/URLHelper';
|
|
import AssistantIndex from './assistants/Index.vue';
|
|
import AssistantInboxesIndex from './assistants/inboxes/Index.vue';
|
|
import DocumentsIndex from './documents/Index.vue';
|
|
import ResponsesIndex from './responses/Index.vue';
|
|
|
|
export const routes = [
|
|
{
|
|
path: frontendURL('accounts/:accountId/captain/assistants'),
|
|
component: AssistantIndex,
|
|
name: 'captain_assistants_index',
|
|
meta: {
|
|
permissions: ['administrator', 'agent'],
|
|
featureFlag: FEATURE_FLAGS.CAPTAIN,
|
|
installationTypes: [
|
|
INSTALLATION_TYPES.CLOUD,
|
|
INSTALLATION_TYPES.ENTERPRISE,
|
|
],
|
|
},
|
|
},
|
|
{
|
|
path: frontendURL(
|
|
'accounts/:accountId/captain/assistants/:assistantId/inboxes'
|
|
),
|
|
component: AssistantInboxesIndex,
|
|
name: 'captain_assistants_inboxes_index',
|
|
meta: {
|
|
permissions: ['administrator', 'agent'],
|
|
featureFlag: FEATURE_FLAGS.CAPTAIN,
|
|
installationTypes: [
|
|
INSTALLATION_TYPES.CLOUD,
|
|
INSTALLATION_TYPES.ENTERPRISE,
|
|
],
|
|
},
|
|
},
|
|
{
|
|
path: frontendURL('accounts/:accountId/captain/documents'),
|
|
component: DocumentsIndex,
|
|
name: 'captain_documents_index',
|
|
meta: {
|
|
permissions: ['administrator', 'agent'],
|
|
featureFlag: FEATURE_FLAGS.CAPTAIN,
|
|
installationTypes: [
|
|
INSTALLATION_TYPES.CLOUD,
|
|
INSTALLATION_TYPES.ENTERPRISE,
|
|
],
|
|
},
|
|
},
|
|
{
|
|
path: frontendURL('accounts/:accountId/captain/responses'),
|
|
component: ResponsesIndex,
|
|
name: 'captain_responses_index',
|
|
meta: {
|
|
permissions: ['administrator', 'agent'],
|
|
featureFlag: FEATURE_FLAGS.CAPTAIN,
|
|
installationTypes: [
|
|
INSTALLATION_TYPES.CLOUD,
|
|
INSTALLATION_TYPES.ENTERPRISE,
|
|
],
|
|
},
|
|
},
|
|
];
|