mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-03 17:23:42 -05:00
SQL Operations Studio Public Preview 1 (0.23) release source code
This commit is contained in:
56
src/vs/platform/credentials/node/credentialsIpc.ts
Normal file
56
src/vs/platform/credentials/node/credentialsIpc.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import { IChannel } from 'vs/base/parts/ipc/common/ipc';
|
||||
import { ICredentialsService } from 'vs/platform/credentials/common/credentials';
|
||||
|
||||
export interface ICredentialsArgs {
|
||||
service: string;
|
||||
account: string;
|
||||
secret?: string;
|
||||
}
|
||||
|
||||
export interface ICredentialsChannel extends IChannel {
|
||||
call(command: 'readSecret', credentials: ICredentialsArgs): TPromise<string>;
|
||||
call(command: 'writeSecret', credentials: ICredentialsArgs): TPromise<void>;
|
||||
call(command: 'deleteSecret', credentials: ICredentialsArgs): TPromise<boolean>;
|
||||
call(command: string, arg?: any): TPromise<any>;
|
||||
}
|
||||
|
||||
export class CredentialsChannel implements ICredentialsChannel {
|
||||
|
||||
constructor(private service: ICredentialsService) { }
|
||||
|
||||
call(command: string, arg: ICredentialsArgs): TPromise<any> {
|
||||
switch (command) {
|
||||
case 'readSecret': return this.service.readSecret(arg.service, arg.account);
|
||||
case 'writeSecret': return this.service.writeSecret(arg.service, arg.account, arg.secret);
|
||||
case 'deleteSecret': return this.service.deleteSecret(arg.service, arg.account);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
export class CredentialsChannelClient implements ICredentialsService {
|
||||
|
||||
_serviceBrand: any;
|
||||
|
||||
constructor(private channel: ICredentialsChannel) { }
|
||||
|
||||
readSecret(service: string, account: string): TPromise<string | undefined> {
|
||||
return this.channel.call('readSecret', { service, account });
|
||||
}
|
||||
|
||||
writeSecret(service: string, account: string, secret: string): TPromise<void> {
|
||||
return this.channel.call('writeSecret', { service, account, secret });
|
||||
}
|
||||
|
||||
deleteSecret(service: string, account: string): TPromise<boolean> {
|
||||
return this.channel.call('deleteSecret', { service, account });
|
||||
}
|
||||
}
|
||||
27
src/vs/platform/credentials/node/credentialsService.ts
Normal file
27
src/vs/platform/credentials/node/credentialsService.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
|
||||
import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import { ICredentialsService } from 'vs/platform/credentials/common/credentials';
|
||||
import * as keytar from 'keytar';
|
||||
|
||||
export class CredentialsService implements ICredentialsService {
|
||||
|
||||
_serviceBrand: any;
|
||||
|
||||
readSecret(service: string, account: string): TPromise<string | undefined> {
|
||||
return TPromise.wrap(keytar.getPassword(service, account))
|
||||
.then(result => result === null ? undefined : result);
|
||||
}
|
||||
|
||||
writeSecret(service: string, account: string, secret: string): TPromise<void> {
|
||||
return TPromise.wrap(keytar.setPassword(service, account, secret));
|
||||
}
|
||||
|
||||
deleteSecret(service: string, account: string): TPromise<boolean> {
|
||||
return TPromise.wrap(keytar.deletePassword(service, account));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user