From 6582d3be3769ea9591bf7232333d1e1b8198217f Mon Sep 17 00:00:00 2001
From: Steve Faulkner <southpolesteve@gmail.com>
Date: Tue, 16 Mar 2021 18:04:26 -0500
Subject: [PATCH] Fix Mongo AAD bug where collections are not load (#552)

---
 src/hooks/useKnockoutExplorer.ts | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/hooks/useKnockoutExplorer.ts b/src/hooks/useKnockoutExplorer.ts
index 432a64bbc..ada6fe273 100644
--- a/src/hooks/useKnockoutExplorer.ts
+++ b/src/hooks/useKnockoutExplorer.ts
@@ -78,18 +78,22 @@ async function configureHosted(explorerParams: ExplorerParams): Promise<Explorer
 }
 
 async function configureHostedWithAAD(config: AAD, explorerParams: ExplorerParams): Promise<Explorer> {
+  // TODO: Refactor. updateUserContext needs to be called twice because listKeys below depends on userContext.authorizationToken
+  updateUserContext({
+    authType: AuthType.AAD,
+    authorizationToken: `Bearer ${config.authorizationToken}`,
+  });
   const account = config.databaseAccount;
   const accountResourceId = account.id;
   const subscriptionId = accountResourceId && accountResourceId.split("subscriptions/")[1].split("/")[0];
   const resourceGroup = accountResourceId && accountResourceId.split("resourceGroups/")[1].split("/")[0];
+  const keys = await listKeys(subscriptionId, resourceGroup, account.name);
   updateUserContext({
     subscriptionId,
     resourceGroup,
-    authType: AuthType.AAD,
-    authorizationToken: `Bearer ${config.authorizationToken}`,
     databaseAccount: config.databaseAccount,
+    masterKey: keys.primaryMasterKey,
   });
-  const keys = await listKeys(subscriptionId, resourceGroup, account.name);
   const explorer = new Explorer(explorerParams);
   explorer.configure({
     databaseAccount: account,