diff --git a/changelogs/fragments/7298.yml b/changelogs/fragments/7298.yml new file mode 100644 index 00000000000..ebe63d4ffe0 --- /dev/null +++ b/changelogs/fragments/7298.yml @@ -0,0 +1,2 @@ +feat: +- Disable certain routes when data_source.manageableBy is none ([#7298](https://github.com/opensearch-project/OpenSearch-Dashboards/pull/7298)) \ No newline at end of file diff --git a/src/plugins/data_source_management/public/management_app/mount_management_section.test.tsx b/src/plugins/data_source_management/public/management_app/mount_management_section.test.tsx index 7c4e7d812c6..4b7bd3ab5c8 100644 --- a/src/plugins/data_source_management/public/management_app/mount_management_section.test.tsx +++ b/src/plugins/data_source_management/public/management_app/mount_management_section.test.tsx @@ -119,4 +119,37 @@ describe('mountManagementSection', () => { expect(route.prop('path')).not.toEqual(['/:id']); }); }); + + it('renders CreateDataSourcePanel when canManageDataSource is true', async () => { + const mockGetStartServices: StartServicesAccessor = jest + .fn() + .mockResolvedValue([ + { + chrome: { docTitle: { reset: jest.fn() } }, + application: { capabilities: { dataSource: { canManage: false } } }, + savedObjects: {}, + uiSettings: {}, + notifications: {}, + overlays: {}, + http: {}, + docLinks: {}, + }, + ]); + + await mountManagementSection(mockGetStartServices, mockParams, mockAuthMethodsRegistry, true); + const wrapper = shallow( + + + + + + + + + + + ); + + expect(wrapper.find(Route)).toHaveLength(2); + }); }); diff --git a/src/plugins/data_source_management/public/management_app/mount_management_section.tsx b/src/plugins/data_source_management/public/management_app/mount_management_section.tsx index 15de75088b4..ec7f7f53fe4 100644 --- a/src/plugins/data_source_management/public/management_app/mount_management_section.tsx +++ b/src/plugins/data_source_management/public/management_app/mount_management_section.tsx @@ -49,20 +49,26 @@ export async function mountManagementSection( authenticationMethodRegistry: authMethodsRegistry, }; + const canManageDataSource = !!application.capabilities?.dataSource?.canManage; + const content = ( - - - - {featureFlagStatus && ( + {canManageDataSource && ( + + + + )} + {featureFlagStatus && canManageDataSource && ( )} - - - + {canManageDataSource && ( + + + + )} {featureFlagStatus && (