15768: collection copy dialog mostly works Arvados-DCO-1.1-Signed-off-by: Lisa Knox...
[arvados-workbench2.git] / src / store / auth / auth-reducer.ts
index b8746ca59e0fdfb7f326a6d03aaa1bc5237edb9c..c109acaf5184d72a133f94745f9c337dee4909af 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,17 +73,18 @@ 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,
-                homeCluster: user.uuid.substr(0, 5)
+                apiTokenLocation: tokenLocation,
+                homeCluster: user.uuid.substring(0, 5)
             }),
         LOGIN: () => state,
         LOGOUT: () => ({ ...state, apiToken: undefined }),
         USER_DETAILS_SUCCESS: (user: User) =>
-            ({ ...state, user, homeCluster: user.uuid.substr(0, 5) }),
+            ({ ...state, user, homeCluster: user.uuid.substring(0, 5) }),
         SET_SSH_KEYS: (sshKeys: SshKeyResource[]) => ({ ...state, sshKeys }),
         ADD_SSH_KEY: (sshKey: SshKeyResource) =>
             ({ ...state, sshKeys: state.sshKeys.concat(sshKey) }),