16679: Uses sessionStorage when Login.TokenLifetime is set to non-zero.
[arvados-workbench2.git] / src / services / services.ts
index 41dc831e8cad2b9ce3a30e253ceab2079015718f..9a7b1e040a11254e9564251d2b2ced03cba4bb1f 100644 (file)
@@ -32,6 +32,7 @@ import { VocabularyService } from '~/services/vocabulary-service/vocabulary-serv
 import { NodeService } from '~/services/node-service/node-service';
 import { FileViewersConfigService } from '~/services/file-viewers-config-service/file-viewers-config-service';
 import { LinkAccountService } from "./link-account-service/link-account-service";
+import parse from "parse-duration";
 
 export type ServiceRepository = ReturnType<typeof createServices>;
 
@@ -78,7 +79,11 @@ export const createServices = (config: Config, actions: ApiActions, useApiClient
     const linkAccountService = new LinkAccountService(apiClient, actions);
 
     const ancestorsService = new AncestorService(groupsService, userService);
-    const authService = new AuthService(apiClient, config.rootUrl, actions);
+
+    const tokenLifetime = config && config.clusterConfig && config.clusterConfig.Login.TokenLifetime || '0s';
+    const authService = new AuthService(apiClient, config.rootUrl, actions,
+        (parse(tokenLifetime, 's') || 0) > 0);
+
     const collectionService = new CollectionService(apiClient, webdavClient, authService, actions);
     const favoriteService = new FavoriteService(linkService, groupsService);
     const tagService = new TagService(linkService);