16212: Displays user depending on available user data.
[arvados.git] / src / services / auth-service / auth-service.ts
index 2562dc6af779bff9e9f6f7650e4b4eef731adf0b..61db625c62306862b6b304bfc70c8f5c9d5e4caf 100644 (file)
@@ -2,7 +2,7 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import { getUserFullname, User, UserPrefs } from '~/models/user';
+import { User, UserPrefs, getUserDisplayName } from '~/models/user';
 import { AxiosInstance } from "axios";
 import { ApiActions } from "~/services/api/api-actions";
 import * as uuid from "uuid/v4";
@@ -43,7 +43,10 @@ export class AuthService {
 
     public saveApiToken(token: string) {
         localStorage.setItem(API_TOKEN_KEY, token);
-        localStorage.setItem(HOME_CLUSTER, token.split('/')[1].substr(0, 5));
+        const sp = token.split('/');
+        if (sp.length === 3) {
+            localStorage.setItem(HOME_CLUSTER, sp[1].substr(0, 5));
+        }
     }
 
     public removeApiToken() {
@@ -126,13 +129,14 @@ export class AuthService {
             clusterId: cfg.uuidPrefix,
             remoteHost: cfg.rootUrl,
             baseUrl: cfg.baseUrl,
-            name: getUserFullname(user),
+            name: user ? getUserDisplayName(user): '',
             email: user ? user.email : '',
             token: this.getApiToken(),
             loggedIn: true,
             active: true,
             uuid: user ? user.uuid : '',
-            status: SessionStatus.VALIDATED
+            status: SessionStatus.VALIDATED,
+            apiRevision: cfg.apiRevision,
         } as Session;
         const localSessions = this.getSessions().map(s => ({
             ...s,
@@ -152,7 +156,8 @@ export class AuthService {
                 loggedIn: false,
                 active: false,
                 uuid: '',
-                status: SessionStatus.INVALIDATED
+                status: SessionStatus.INVALIDATED,
+                apiRevision: 0,
             } as Session;
         });
         const sessions = [currentSession]