From 60ff5dcba70c5489b8cc65f59e52779ac299b0e7 Mon Sep 17 00:00:00 2001
From: Sasha Ilieva <sasha.ilieva@vereign.com>
Date: Tue, 21 Apr 2020 17:28:46 +0300
Subject: [PATCH] Set currentlyLoadedIdentity

---
 javascript/src/iframe/viamapi-iframe.js | 23 ++++++++++-------------
 1 file changed, 10 insertions(+), 13 deletions(-)

diff --git a/javascript/src/iframe/viamapi-iframe.js b/javascript/src/iframe/viamapi-iframe.js
index 4f5ecc6..c6cdcc6 100644
--- a/javascript/src/iframe/viamapi-iframe.js
+++ b/javascript/src/iframe/viamapi-iframe.js
@@ -985,10 +985,15 @@ const connection = Penpal.connectToParent({
       return response;
     },
     contactsCheckAccountRecoveryStatus: async restoreAccessIdentity => {
-      const authenticationPublicKey =
-        restoreAccessIdentity.authentication.publicKey;
+      window.currentlyLoadedIdentity = restoreAccessIdentity;
+      const {
+        publicKey,
+        x509Certificate
+      } = restoreAccessIdentity.authentication;
+      window.loadedIdentities[publicKey] = restoreAccessIdentity;
+      window.viamAnonymousApi.setIdentity(publicKey);
       viamApi.setSessionData("", "");
-      viamApi.setIdentity(authenticationPublicKey);
+      viamApi.setIdentity(publicKey);
 
       const timeout = ms => new Promise(resolve => setTimeout(resolve, ms));
 
@@ -1000,16 +1005,7 @@ const connection = Penpal.connectToParent({
           null
         );
         if (response.data === 1) {
-          if (!window.loadedIdentities[authenticationPublicKey]) {
-            console.log("Identity not loaded");
-            return {
-              data: "",
-              code: "400",
-              status: "Identity not loaded"
-            };
-          }
-
-          const deviceHash = await createDeviceHash(authenticationPublicKey);
+          const deviceHash = await createDeviceHash(publicKey);
           window.viamApi.setDeviceHash(deviceHash);
 
           const identityLoginResponse = await executeRestfulFunction(
@@ -1024,6 +1020,7 @@ const connection = Penpal.connectToParent({
           if (code === "200") {
             handleIdentityLogin(restoreAccessIdentity, data.Uuid, data.Session);
             await getProfileData(restoreAccessIdentity);
+            await setIdentityInLocalStorage(restoreAccessIdentity);
           }
         }
 
-- 
GitLab