17229: Webshell use localstorage if available
[arvados-workbench2.git] / src / store / auth / auth-reducer.ts
index b8746ca59e0fdfb7f326a6d03aaa1bc5237edb9c..ce836a55600db742de78bd49a59108b5a957c4c0 100644 (file)
@@ -13,6 +13,7 @@ export interface AuthState {
     user?: User;
     apiToken?: string;
     apiTokenExpiration?: Date;
+    apiTokenLocation?: string;
     extraApiToken?: string;
     extraApiTokenExpiration?: Date;
     sshKeys: SshKeyResource[];
@@ -29,6 +30,7 @@ const initialState: AuthState = {
     user: undefined,
     apiToken: undefined,
     apiTokenExpiration: undefined,
+    apiTokenLocation: undefined,
     extraApiToken: undefined,
     extraApiTokenExpiration: undefined,
     sshKeys: [],
@@ -71,11 +73,12 @@ export const authReducer = (services: ServiceRepository) => (state = initialStat
             ({ ...state, extraApiToken, extraApiTokenExpiration }),
         RESET_EXTRA_TOKEN: () =>
             ({ ...state, extraApiToken: undefined, extraApiTokenExpiration: undefined }),
-        INIT_USER: ({ user, token, tokenExpiration }) =>
+        INIT_USER: ({ user, token, tokenExpiration, tokenLocation = state.apiTokenLocation }) =>
             ({ ...state,
                 user,
                 apiToken: token,
                 apiTokenExpiration: tokenExpiration,
+                apiTokenLocation: tokenLocation,
                 homeCluster: user.uuid.substr(0, 5)
             }),
         LOGIN: () => state,