diff --git a/packages/web/src/appobj/DatabaseAppObject.svelte b/packages/web/src/appobj/DatabaseAppObject.svelte index 671d5b64e..58a444190 100644 --- a/packages/web/src/appobj/DatabaseAppObject.svelte +++ b/packages/web/src/appobj/DatabaseAppObject.svelte @@ -468,12 +468,14 @@ await dbgateApi.executeQuery(${JSON.stringify( { divider: true }, isSqlOrDoc && + isProApp() && !connection.isReadOnly && hasPermission(`dbops/import`) && { onClick: handleImport, text: _t('database.import', { defaultMessage: 'Import' }), }, isSqlOrDoc && + isProApp() && hasPermission(`dbops/export`) && { onClick: handleExport, text: _t('database.export', { defaultMessage: 'Export' }), diff --git a/packages/web/src/commands/stdCommands.ts b/packages/web/src/commands/stdCommands.ts index cbf82fc72..b9b8d67fa 100644 --- a/packages/web/src/commands/stdCommands.ts +++ b/packages/web/src/commands/stdCommands.ts @@ -689,7 +689,7 @@ registerCommand({ name: 'Export database', toolbar: true, icon: 'icon export', - testEnabled: () => getCurrentDatabase() != null && hasPermission(`dbops/export`), + testEnabled: () => getCurrentDatabase() != null && hasPermission(`dbops/export`) && isProApp(), onClick: () => { openImportExportTab({ targetStorageType: getDefaultFileFormat(getExtensions()).storageType, diff --git a/packages/web/src/modals/NewObjectModal.svelte b/packages/web/src/modals/NewObjectModal.svelte index 99d140694..eb08b9f98 100644 --- a/packages/web/src/modals/NewObjectModal.svelte +++ b/packages/web/src/modals/NewObjectModal.svelte @@ -94,6 +94,7 @@ title: 'Export database', description: 'Export to file like CSV, JSON, Excel, or other DB', command: 'database.export', + isProFeature: true, testid: 'NewObjectModal_databaseExport', disabledMessage: 'Export is not available for current database', }, diff --git a/packages/web/src/utility/createQuickExportMenu.ts b/packages/web/src/utility/createQuickExportMenu.ts index 467ec1d74..a3cdc69c6 100644 --- a/packages/web/src/utility/createQuickExportMenu.ts +++ b/packages/web/src/utility/createQuickExportMenu.ts @@ -1,11 +1,12 @@ import type { QuickExportDefinition } from 'dbgate-types'; import { currentArchive, getCurrentArchive, getExtensions } from '../stores'; import hasPermission from './hasPermission'; +import { isProApp } from './proTools'; export function createQuickExportMenuItems(handler: (fmt: QuickExportDefinition) => Function, advancedExportMenuItem) { const extensions = getExtensions(); return [ - { + isProApp() && { text: 'Export advanced...', ...advancedExportMenuItem, },