From e5d104b3a8aeb80400361713f735f5665a11d5f5 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Fri, 18 Sep 2020 09:51:32 +0200 Subject: [PATCH] Remote: Disallow saving workspace locally. Fixes #106990 --- .../services/dialogs/browser/abstractFileDialogService.ts | 2 +- .../workspaces/browser/abstractWorkspaceEditingService.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts b/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts index 295af5938e4..269025864aa 100644 --- a/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts +++ b/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts @@ -78,7 +78,7 @@ export abstract class AbstractFileDialogService implements IFileDialogService { // Check for current workspace config file first... if (this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE) { const configuration = this.contextService.getWorkspace().configuration; - if (configuration && !isUntitledWorkspace(configuration, this.environmentService)) { + if (configuration && configuration.scheme === schemeFilter && !isUntitledWorkspace(configuration, this.environmentService)) { return resources.dirname(configuration) || undefined; } } diff --git a/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.ts b/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.ts index 479d04fbade..1c504281caa 100644 --- a/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.ts +++ b/src/vs/workbench/services/workspaces/browser/abstractWorkspaceEditingService.ts @@ -52,7 +52,8 @@ export abstract class AbstractWorkspaceEditingService implements IWorkspaceEditi saveLabel: mnemonicButtonLabel(nls.localize('save', "Save")), title: nls.localize('saveWorkspace', "Save Workspace"), filters: WORKSPACE_FILTER, - defaultUri: this.fileDialogService.defaultWorkspacePath() + defaultUri: this.fileDialogService.defaultWorkspacePath(), + availableFileSystems: this.environmentService.configuration.remoteAuthority ? [Schemas.vscodeRemote] : undefined }); if (!workspacePath) { -- GitLab