From 450abc7f8c581ce4d42a5d21f804ac7fc6a8338b Mon Sep 17 00:00:00 2001 From: Hetu Nandu Date: Mon, 13 Nov 2023 16:30:27 +0530 Subject: [PATCH] chore: New datasource pane GAC (#28802) ## Description Updates the GAC control for creating datasource #### PR fixes following issue(s) Fixes #28820 #### Media #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [ ] Manual - [ ] JUnit - [ ] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [ ] My code follows the style guidelines of this project - [ ] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [ ] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed --- .../DataSourceEditor/DatasourceBlankState.tsx | 17 +++++++++++++++++ .../IDE/LeftPane/CreateDatasourcePopover.tsx | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/app/client/src/pages/Editor/DataSourceEditor/DatasourceBlankState.tsx b/app/client/src/pages/Editor/DataSourceEditor/DatasourceBlankState.tsx index 76282e3c91..4a4e61f138 100644 --- a/app/client/src/pages/Editor/DataSourceEditor/DatasourceBlankState.tsx +++ b/app/client/src/pages/Editor/DataSourceEditor/DatasourceBlankState.tsx @@ -10,6 +10,12 @@ import history from "utils/history"; import { integrationEditorURL } from "@appsmith/RouteBuilder"; import type { RouteComponentProps } from "react-router"; import { INTEGRATION_TABS } from "constants/routes"; +import { useSelector } from "react-redux"; +import type { AppState } from "@appsmith/reducers"; +import { getCurrentAppWorkspace } from "@appsmith/selectors/workspaceSelectors"; +import { useFeatureFlag } from "utils/hooks/useFeatureFlag"; +import { FEATURE_FLAG } from "@appsmith/entities/FeatureFlag"; +import { getHasCreateDatasourcePermission } from "@appsmith/utils/BusinessFeatures/permissionPageHelpers"; const Container = styled.div` height: 100%; @@ -38,6 +44,16 @@ const DatasourceBlankState = ( pageId: string; }>, ) => { + const userWorkspacePermissions = useSelector( + (state: AppState) => getCurrentAppWorkspace(state).userPermissions ?? [], + ); + + const isFeatureEnabled = useFeatureFlag(FEATURE_FLAG.license_gac_enabled); + + const canCreateDatasource = getHasCreateDatasourcePermission( + isFeatureEnabled, + userWorkspacePermissions, + ); return ( @@ -46,6 +62,7 @@ const DatasourceBlankState = ( {createMessage(DATASOURCE_BLANK_STATE_MESSAGE)}