From 85db5cc96561d1aa9a9603d3044a4ae7462f0b95 Mon Sep 17 00:00:00 2001
From: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com>
Date: Fri, 2 Dec 2022 18:05:18 +0530
Subject: [PATCH] fix: update permission driven ctas to handle auto save update
changes (#18609)
---
.../SaveOrDiscardDatasourceModal.tsx | 22 +++++++++++++++++--
.../pages/Editor/DataSourceEditor/index.tsx | 2 ++
.../Editor/SaaSEditor/DatasourceForm.tsx | 2 ++
.../src/pages/common/datasourceAuth/index.tsx | 10 ++++++---
4 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/app/client/src/pages/Editor/DataSourceEditor/SaveOrDiscardDatasourceModal.tsx b/app/client/src/pages/Editor/DataSourceEditor/SaveOrDiscardDatasourceModal.tsx
index a4a2714ee0..bd8d05fdb9 100644
--- a/app/client/src/pages/Editor/DataSourceEditor/SaveOrDiscardDatasourceModal.tsx
+++ b/app/client/src/pages/Editor/DataSourceEditor/SaveOrDiscardDatasourceModal.tsx
@@ -10,16 +10,33 @@ import {
DialogComponent as Dialog,
Size,
} from "design-system";
+import { TEMP_DATASOURCE_ID } from "constants/Datasource";
+import { hasManageDatasourcePermission } from "@appsmith/utils/permissionHelpers";
interface SaveOrDiscardModalProps {
isOpen: boolean;
onDiscard(): void;
onSave?(): void;
onClose(): void;
+ datasourceId: string;
+ datasourcePermissions: string[];
}
function SaveOrDiscardDatasourceModal(props: SaveOrDiscardModalProps) {
- const { isOpen, onClose, onDiscard, onSave } = props;
+ const {
+ datasourceId,
+ datasourcePermissions,
+ isOpen,
+ onClose,
+ onDiscard,
+ onSave,
+ } = props;
+
+ const createMode = datasourceId === TEMP_DATASOURCE_ID;
+ const canManageDatasources = hasManageDatasourcePermission(
+ datasourcePermissions,
+ );
+ const disableSaveButton = !createMode && !canManageDatasources;
return (
diff --git a/app/client/src/pages/Editor/DataSourceEditor/index.tsx b/app/client/src/pages/Editor/DataSourceEditor/index.tsx
index 1849ba4ac6..1ba8718761 100644
--- a/app/client/src/pages/Editor/DataSourceEditor/index.tsx
+++ b/app/client/src/pages/Editor/DataSourceEditor/index.tsx
@@ -420,6 +420,8 @@ class DatasourceEditorRouter extends React.Component {
renderSaveDisacardModal() {
return (
{
)}
{
return {
[DatasourceButtonType.DELETE]: (
{
@@ -303,7 +305,9 @@ function DatasourceAuth({