+ public getUser(): User | undefined {
+ const email = localStorage.getItem(USER_EMAIL_KEY);
+ const firstName = localStorage.getItem(USER_FIRST_NAME_KEY);
+ const lastName = localStorage.getItem(USER_LAST_NAME_KEY);
+ const uuid = this.getUuid();
+ const ownerUuid = this.getOwnerUuid();
+ const isAdmin = this.getIsAdmin();
+ const identityUrl = localStorage.getItem(USER_IDENTITY_URL);
+ const prefs = JSON.parse(localStorage.getItem(USER_PREFS) || '{"profile": {}}');
+
+ return email && firstName && lastName && uuid && ownerUuid && identityUrl && prefs
+ ? { email, firstName, lastName, uuid, ownerUuid, isAdmin, identityUrl, prefs }
+ : undefined;
+ }
+
+ public saveUser(user: User) {
+ localStorage.setItem(USER_EMAIL_KEY, user.email);
+ localStorage.setItem(USER_FIRST_NAME_KEY, user.firstName);
+ localStorage.setItem(USER_LAST_NAME_KEY, user.lastName);
+ localStorage.setItem(USER_UUID_KEY, user.uuid);
+ localStorage.setItem(USER_OWNER_UUID_KEY, user.ownerUuid);
+ localStorage.setItem(USER_IS_ADMIN, JSON.stringify(user.isAdmin));
+ localStorage.setItem(USER_IDENTITY_URL, user.identityUrl);
+ localStorage.setItem(USER_PREFS, JSON.stringify(user.prefs));
+ }
+
+ public removeUser() {
+ localStorage.removeItem(USER_EMAIL_KEY);
+ localStorage.removeItem(USER_FIRST_NAME_KEY);
+ localStorage.removeItem(USER_LAST_NAME_KEY);
+ localStorage.removeItem(USER_UUID_KEY);
+ localStorage.removeItem(USER_OWNER_UUID_KEY);
+ localStorage.removeItem(USER_IS_ADMIN);
+ localStorage.removeItem(USER_IDENTITY_URL);
+ localStorage.removeItem(USER_PREFS);