Skip to content

Commit 0cf846e

Browse files
Support in-between version 2.2.3-2.2.4 for Microsoft Login Prompt
1 parent d9140e1 commit 0cf846e

File tree

2 files changed

+20
-8
lines changed

2 files changed

+20
-8
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@ Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).
1616
### Commits
1717

1818
- Removed Keyboard bindings
19+
- Support in-between version 2.2.3-2.2.4 for Microsoft Login Prompt
1920
- first version of themed views completed [`c7757f9`](https://github.com/Power-Maverick/DataverseDevTools-VSCode/commit/c7757f9c92bb6b9b6a726033cb9536bf084e542d)
2021
- webview ui toolkit removed and replaced with pure css [`b225952`](https://github.com/Power-Maverick/DataverseDevTools-VSCode/commit/b22595265cc38276a131b91932803fcbc804cc09)
22+
- updated the logs [`d9140e1`](https://github.com/Power-Maverick/DataverseDevTools-VSCode/commit/d9140e1c76448033b30504a309a6a6cc22cd7526)
2123
- Update version to v2.2.5 [`83dc3ea`](https://github.com/Power-Maverick/DataverseDevTools-VSCode/commit/83dc3ea2a3948153cbf4a34bd30df09c4b74a64d)
2224
- Docs: Add @kkazala as a contributor [`17685bc`](https://github.com/Power-Maverick/DataverseDevTools-VSCode/commit/17685bcc7d90c77a0f10382d82a4de24aa499d58)
2325
- Docs: Update @cyco77 as a contributor [`93572b3`](https://github.com/Power-Maverick/DataverseDevTools-VSCode/commit/93572b307db0db12650feffe38d956f812fbc6d9)

src/helpers/dataverseHelper.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,11 @@ export class DataverseHelper {
6363
try {
6464
if (conn) {
6565
const tokenResponse = await this.connectInternal(conn.loginType, conn);
66-
conn.currentAccessToken = tokenResponse.access_token!;
67-
conn.refreshToken = tokenResponse.refresh_token!;
68-
this.vsstate.saveInWorkspace(connectionCurrentStoreKey, conn);
66+
if (tokenResponse) {
67+
conn.currentAccessToken = tokenResponse.access_token!;
68+
conn.refreshToken = tokenResponse.refresh_token!;
69+
this.vsstate.saveInWorkspace(connectionCurrentStoreKey, conn);
70+
}
6971
}
7072
} catch (err) {
7173
throw err;
@@ -115,8 +117,9 @@ export class DataverseHelper {
115117
});
116118
progress.report({ increment: 0, message: "Connecting to environment..." });
117119
const tokenResponse = await this.connectInternal(conn.loginType, conn);
118-
conn.currentAccessToken = tokenResponse.access_token!;
119-
if (tokenResponse.access_token) {
120+
121+
if (tokenResponse && tokenResponse.access_token) {
122+
conn.currentAccessToken = tokenResponse.access_token!;
120123
switch (conn.loginType) {
121124
case LoginTypes.clientIdSecret:
122125
conn.userName = JSON.parse(Buffer.from(tokenResponse.access_token.split(".")[1], "base64").toString())?.appid;
@@ -128,8 +131,12 @@ export class DataverseHelper {
128131
conn.userName = JSON.parse(Buffer.from(tokenResponse.access_token.split(".")[1], "base64").toString())?.upn;
129132
break;
130133
}
134+
conn.refreshToken = tokenResponse.refresh_token!;
135+
} else {
136+
vscode.window.showErrorMessage("Unable to connect to Dataverse. Please try again.");
137+
return undefined;
131138
}
132-
conn.refreshToken = tokenResponse.refresh_token!;
139+
133140
progress.report({ increment: 10 });
134141
this.vsstate.saveInWorkspace(connectionCurrentStoreKey, conn);
135142
progress.report({ increment: 30, message: "Getting entity metadata..." });
@@ -409,6 +416,7 @@ export class DataverseHelper {
409416
tokenResponse = await loginWithClientIdSecret(currentConnection.environmentUrl, currentConnection.userName!, currentConnection.password!, currentConnection.tenantId!);
410417
break;
411418
case LoginTypes.microsoftLogin:
419+
case `${LoginTypes.microsoftLogin} (Recommended)`: // Support in-between version 2.2.3-2.2.4
412420
tokenResponse = await loginWithMicrosoftPrompt(currentConnection.environmentUrl, openUri, redirectTimeout);
413421
break;
414422
// case LoginTypes.azure:
@@ -518,7 +526,7 @@ export class DataverseHelper {
518526
return conn;
519527
}
520528

521-
private async connectInternal(loginType: string, conn: IConnection): Promise<Token> {
529+
private async connectInternal(loginType: string, conn: IConnection): Promise<Token | undefined> {
522530
switch (loginType) {
523531
case LoginTypes.userNamePassword:
524532
return await loginWithUsernamePassword(conn.environmentUrl, conn.userName!, conn.password!);
@@ -527,9 +535,11 @@ export class DataverseHelper {
527535
// case LoginTypes.azure:
528536
// return await loginWithAzure(conn.environmentUrl);
529537
case LoginTypes.microsoftLogin:
538+
case `${LoginTypes.microsoftLogin} (Recommended)`: // Support in-between version 2.2.3-2.2.4
530539
return await loginWithMicrosoftPrompt(conn.environmentUrl, openUri, redirectTimeout);
531540
default:
532-
throw new Error(ErrorMessages.invalidLoginType);
541+
vscode.window.showErrorMessage(ErrorMessages.invalidLoginType);
542+
return undefined;
533543
}
534544
}
535545

0 commit comments

Comments
 (0)