mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 04:49:35 +00:00
Code cleanup, remove stuff related to sign in commands
This commit is contained in:
parent
bb3450167d
commit
87287d0275
|
@ -21,14 +21,12 @@ export async function activate(context: vscode.ExtensionContext) {
|
|||
vscode.authentication.registerAuthenticationProvider({
|
||||
id: 'github',
|
||||
displayName: 'GitHub',
|
||||
supportsMultipleAccounts: false,
|
||||
onDidChangeSessions: onDidChangeSessions.event,
|
||||
getSessions: () => Promise.resolve(loginService.sessions),
|
||||
login: async (scopeList: string[] | undefined) => {
|
||||
login: async (scopeList: string[]) => {
|
||||
try {
|
||||
telemetryReporter.sendTelemetryEvent('login');
|
||||
const loginScopes = scopeList ? scopeList.sort().join(' ') : 'user:email';
|
||||
const session = await loginService.login(loginScopes);
|
||||
const session = await loginService.login(scopeList.sort().join(' '));
|
||||
Logger.info('Login success!');
|
||||
onDidChangeSessions.fire({ added: [session.id], removed: [], changed: [] });
|
||||
return session;
|
||||
|
|
|
@ -23,14 +23,12 @@ export async function activate(context: vscode.ExtensionContext) {
|
|||
context.subscriptions.push(vscode.authentication.registerAuthenticationProvider({
|
||||
id: 'microsoft',
|
||||
displayName: 'Microsoft',
|
||||
supportsMultipleAccounts: true,
|
||||
onDidChangeSessions: onDidChangeSessions.event,
|
||||
getSessions: () => Promise.resolve(loginService.sessions),
|
||||
login: async (scopes: string[] | undefined) => {
|
||||
login: async (scopes: string[]) => {
|
||||
try {
|
||||
telemetryReporter.sendTelemetryEvent('login');
|
||||
const loginScopes = scopes ? scopes.sort().join(' ') : 'https://management.core.windows.net/.default offline_access';
|
||||
await loginService.login(loginScopes);
|
||||
await loginService.login(scopes.sort().join(' '));
|
||||
const session = loginService.sessions[loginService.sessions.length - 1];
|
||||
onDidChangeSessions.fire({ added: [session.id], removed: [], changed: [] });
|
||||
return loginService.sessions[0]!;
|
||||
|
|
8
src/vs/vscode.proposed.d.ts
vendored
8
src/vs/vscode.proposed.d.ts
vendored
|
@ -74,12 +74,6 @@ declare module 'vscode' {
|
|||
readonly id: string;
|
||||
readonly displayName: string;
|
||||
|
||||
/**
|
||||
* Whether the authentication provider supports the user being logged into
|
||||
* multiple different accounts at the same time.
|
||||
*/
|
||||
supportsMultipleAccounts: boolean;
|
||||
|
||||
/**
|
||||
* An [event](#Event) which fires when the array of sessions has changed, or data
|
||||
* within a session has changed.
|
||||
|
@ -94,7 +88,7 @@ declare module 'vscode' {
|
|||
/**
|
||||
* Prompts a user to login.
|
||||
*/
|
||||
login(scopes?: string[]): Thenable<AuthenticationSession>;
|
||||
login(scopes: string[]): Thenable<AuthenticationSession>;
|
||||
logout(sessionId: string): Thenable<void>;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ import { ExtHostAuthenticationShape, ExtHostContext, IExtHostContext, MainContex
|
|||
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
|
||||
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
|
||||
import Severity from 'vs/base/common/severity';
|
||||
import { MenuRegistry, MenuId, IMenuItem } from 'vs/platform/actions/common/actions';
|
||||
import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
|
||||
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
|
||||
import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
|
@ -57,14 +57,11 @@ export class MainThreadAuthenticationProvider extends Disposable {
|
|||
private _sessionMenuItems = new Map<string, IDisposable[]>();
|
||||
private _accounts = new Map<string, string[]>(); // Map account name to session ids
|
||||
private _sessions = new Map<string, string>(); // Map account id to name
|
||||
private _signInMenuItem: IMenuItem | undefined;
|
||||
private _signInMenuDisposables: IDisposable[] = [];
|
||||
|
||||
constructor(
|
||||
private readonly _proxy: ExtHostAuthenticationShape,
|
||||
public readonly id: string,
|
||||
public readonly displayName: string,
|
||||
private readonly supportsMultipleAccounts: boolean,
|
||||
private readonly notificationService: INotificationService
|
||||
) {
|
||||
super();
|
||||
|
@ -248,27 +245,14 @@ export class MainThreadAuthenticationProvider extends Disposable {
|
|||
this._sessionMenuItems.delete(accountName);
|
||||
}
|
||||
this._accounts.delete(accountName);
|
||||
|
||||
if (this._signInMenuItem) {
|
||||
this._signInMenuItem.command.title = nls.localize('addAccount', "Sign in to {0}", this.displayName);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
addedSessions.forEach(session => this.registerSession(session));
|
||||
|
||||
if (addedSessions.length && this._signInMenuItem) {
|
||||
if (this.supportsMultipleAccounts) {
|
||||
this._signInMenuItem.command.title = nls.localize('addAnotherAccount', "Sign in to another {0} account", this.displayName);
|
||||
} else {
|
||||
this._signInMenuDisposables.forEach(item => item.dispose());
|
||||
this._signInMenuItem = undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
login(scopes?: string[]): Promise<modes.AuthenticationSession> {
|
||||
login(scopes: string[]): Promise<modes.AuthenticationSession> {
|
||||
return this._proxy.$login(this.id, scopes).then(session => {
|
||||
return {
|
||||
id: session.id,
|
||||
|
@ -287,7 +271,6 @@ export class MainThreadAuthenticationProvider extends Disposable {
|
|||
super.dispose();
|
||||
this._sessionMenuItems.forEach(item => item.forEach(d => d.dispose()));
|
||||
this._sessionMenuItems.clear();
|
||||
this._signInMenuDisposables.forEach(item => item.dispose());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -306,8 +289,8 @@ export class MainThreadAuthentication extends Disposable implements MainThreadAu
|
|||
this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostAuthentication);
|
||||
}
|
||||
|
||||
async $registerAuthenticationProvider(id: string, displayName: string, supportsMultipleAccounts: boolean): Promise<void> {
|
||||
const provider = new MainThreadAuthenticationProvider(this._proxy, id, displayName, supportsMultipleAccounts, this.notificationService);
|
||||
async $registerAuthenticationProvider(id: string, displayName: string): Promise<void> {
|
||||
const provider = new MainThreadAuthenticationProvider(this._proxy, id, displayName, this.notificationService);
|
||||
await provider.initialize();
|
||||
this.authenticationService.registerAuthenticationProvider(id, provider);
|
||||
}
|
||||
|
|
|
@ -155,7 +155,7 @@ export interface MainThreadCommentsShape extends IDisposable {
|
|||
}
|
||||
|
||||
export interface MainThreadAuthenticationShape extends IDisposable {
|
||||
$registerAuthenticationProvider(id: string, displayName: string, supportsMultipleAccounts: boolean): void;
|
||||
$registerAuthenticationProvider(id: string, displayName: string): void;
|
||||
$unregisterAuthenticationProvider(id: string): void;
|
||||
$onDidChangeSessions(providerId: string, event: modes.AuthenticationSessionsChangeEvent): void;
|
||||
$getSessionsPrompt(providerId: string, accountName: string, providerName: string, extensionId: string, extensionName: string): Promise<boolean>;
|
||||
|
@ -998,7 +998,7 @@ export interface ExtHostLabelServiceShape {
|
|||
export interface ExtHostAuthenticationShape {
|
||||
$getSessions(id: string): Promise<ReadonlyArray<modes.AuthenticationSession>>;
|
||||
$getSessionAccessToken(id: string, sessionId: string): Promise<string>;
|
||||
$login(id: string, scopes: string[] | undefined): Promise<modes.AuthenticationSession>;
|
||||
$login(id: string, scopes: string[]): Promise<modes.AuthenticationSession>;
|
||||
$logout(id: string, sessionId: string): Promise<void>;
|
||||
}
|
||||
|
||||
|
|
|
@ -114,7 +114,7 @@ export class ExtHostAuthentication implements ExtHostAuthenticationShape {
|
|||
this._onDidChangeSessions.fire({ [provider.id]: e });
|
||||
});
|
||||
|
||||
this._proxy.$registerAuthenticationProvider(provider.id, provider.displayName, provider.supportsMultipleAccounts);
|
||||
this._proxy.$registerAuthenticationProvider(provider.id, provider.displayName);
|
||||
this._onDidChangeAuthenticationProviders.fire({ added: [provider.id], removed: [] });
|
||||
|
||||
return new Disposable(() => {
|
||||
|
@ -125,7 +125,7 @@ export class ExtHostAuthentication implements ExtHostAuthenticationShape {
|
|||
});
|
||||
}
|
||||
|
||||
$login(providerId: string, scopes: string[] | undefined): Promise<modes.AuthenticationSession> {
|
||||
$login(providerId: string, scopes: string[]): Promise<modes.AuthenticationSession> {
|
||||
const authProvider = this._authenticationProviders.get(providerId);
|
||||
if (authProvider) {
|
||||
return Promise.resolve(authProvider.login(scopes));
|
||||
|
|
Loading…
Reference in a new issue