提交 6c432246 编写于 作者: K kieferrm

use upper letter drives on windows

上级 42000645
......@@ -18,6 +18,8 @@ import { IWorkspaceConfigurationService } from 'vs/workbench/services/configurat
import { IConfigurationEditingService, ConfigurationTarget } from 'vs/workbench/services/configuration/common/configurationEditing';
import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace';
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
import baseplatform = require('vs/base/common/platform');
class TrustContribution implements IWorkbenchContribution {
......@@ -55,12 +57,22 @@ class TrustContribution implements IWorkbenchContribution {
}
}
private getWorkspaceTrustKey(): string {
let path = this.workspaceContextService.getWorkspace().resource.fsPath;
if (baseplatform.isWindows && path.length > 2) {
if (path.charAt(1) === ':') {
return path.charAt(0).toLocaleUpperCase().concat(path.substr(1));
}
}
return path;
}
private updateUserSettings(): TPromise<void> {
const key = 'security.workspacesTrustedToSpecifyExecutables';
const path = this.workspaceContextService.getWorkspace().resource.fsPath;
const workspace = this.getWorkspaceTrustKey();
const value = this.configurationService.lookup(key).user || {};
value[path] = true;
value[workspace] = true;
return this.configurationEditingService.writeConfiguration(ConfigurationTarget.USER, { key: key, value: value }, { writeToBuffer: true, autoSave: false });
}
......
......@@ -26,6 +26,7 @@ import { FileChangeType, FileChangesEvent } from 'vs/platform/files/common/files
import Event, { Emitter } from 'vs/base/common/event';
import { Registry } from 'vs/platform/platform';
import { IConfigurationRegistry, IConfigurationNode, Extensions, ISecurityConfiguration } from 'vs/platform/configuration/common/configurationRegistry';
import baseplatform = require('vs/base/common/platform');
interface IStat {
......@@ -48,13 +49,26 @@ export class WorkspaceTrust implements IWorkspaceTrust {
constructor(private contextService: IWorkspaceContextService, private baseConfigurationService: BaseConfigurationService<any>) { }
public isTrusted(): boolean {
let workspace = this.contextService.getWorkspace();
private getWorkspaceTrustKey(): string {
const workspace = this.contextService.getWorkspace();
if (workspace) {
let path = workspace.resource.fsPath;
let securityConfiguration = this.baseConfigurationService.getConfiguration<ISecurityConfiguration>();
let whiteList = securityConfiguration.security.workspacesTrustedToSpecifyExecutables;
return whiteList && whiteList[path];
const path = workspace.resource.fsPath;
if (baseplatform.isWindows && path.length > 2) {
if (path.charAt(1) === ':') {
return path.charAt(0).toLocaleUpperCase().concat(path.substr(1));
}
}
return path;
}
return null;
}
public isTrusted(): boolean {
const workspaceTrustKey = this.getWorkspaceTrustKey();
if (workspaceTrustKey) {
const securityConfiguration = this.baseConfigurationService.getConfiguration<ISecurityConfiguration>();
const whiteList = securityConfiguration.security.workspacesTrustedToSpecifyExecutables;
return whiteList && whiteList[workspaceTrustKey];
}
return false;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册