storj/web/satellite/src/utils/localData.ts
NickolaiYurchenko cc590343c2 web/satellite: server side encryption acknowledge checkbox added
Change-Id: If57ab6e8fddc34c142d19f754caf1338dfdb0bf6
2021-08-04 16:16:26 +00:00

73 lines
2.2 KiB
TypeScript

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
/**
* LocalData exposes methods to manage local storage.
*/
export class LocalData {
private static userId = 'userId';
private static selectedProjectId = 'selectedProjectId';
private static userIdPassSalt = 'userIdPassSalt';
private static serverSideEncryptionAcknowledge = 'serverSideEncryptionAcknowledge';
public static getUserId(): string | null {
return localStorage.getItem(LocalData.userId);
}
public static setUserId(id: string): void {
localStorage.setItem(LocalData.userId, id);
}
public static removeUserId(): void {
localStorage.removeItem(LocalData.userId);
}
public static getSelectedProjectId(): string | null {
return localStorage.getItem(LocalData.selectedProjectId);
}
public static setSelectedProjectId(id: string): void {
localStorage.setItem(LocalData.selectedProjectId, id);
}
public static removeSelectedProjectId(): void {
localStorage.removeItem(LocalData.selectedProjectId);
}
public static getUserIDPassSalt(): UserIDPassSalt | null {
const data: string | null = localStorage.getItem(LocalData.userIdPassSalt);
if (data) {
const parsed = JSON.parse(data);
return new UserIDPassSalt(parsed.userId, parsed.passwordHash, parsed.salt);
}
return null;
}
public static setUserIDPassSalt(id: string, passwordHash: string, salt: string): void {
const data = new UserIDPassSalt(id, passwordHash, salt);
localStorage.setItem(LocalData.userIdPassSalt, JSON.stringify(data));
}
public static getServerSideEncryptionAcknowledge(): boolean {
return Boolean(localStorage.getItem(LocalData.serverSideEncryptionAcknowledge));
}
public static setServerSideEncryptionAcknowledge(): void {
localStorage.setItem(LocalData.serverSideEncryptionAcknowledge, 'true');
}
}
/**
* UserIDPassSalt is an entity holding user id, password hash and salt to be stored in local storage.
*/
export class UserIDPassSalt {
public constructor(
public userId: string = '',
public passwordHash: string = '',
public salt: string = '',
) {}
}