mirror of
https://github.com/bitwarden/browser
synced 2025-12-16 08:13:42 +00:00
move settings service to jslib
This commit is contained in:
@@ -9,6 +9,7 @@ import {
|
|||||||
EnvironmentService,
|
EnvironmentService,
|
||||||
FolderService,
|
FolderService,
|
||||||
PasswordGenerationService,
|
PasswordGenerationService,
|
||||||
|
SettingsService,
|
||||||
TokenService,
|
TokenService,
|
||||||
TotpService,
|
TotpService,
|
||||||
UserService,
|
UserService,
|
||||||
@@ -24,6 +25,7 @@ import {
|
|||||||
MessagingService as MessagingServiceAbstraction,
|
MessagingService as MessagingServiceAbstraction,
|
||||||
PasswordGenerationService as PasswordGenerationServiceAbstraction,
|
PasswordGenerationService as PasswordGenerationServiceAbstraction,
|
||||||
PlatformUtilsService as PlatformUtilsServiceAbstraction,
|
PlatformUtilsService as PlatformUtilsServiceAbstraction,
|
||||||
|
SettingsService as SettingsServiceAbstraction,
|
||||||
StorageService as StorageServiceAbstraction,
|
StorageService as StorageServiceAbstraction,
|
||||||
TokenService as TokenServiceAbstraction,
|
TokenService as TokenServiceAbstraction,
|
||||||
TotpService as TotpServiceAbstraction,
|
TotpService as TotpServiceAbstraction,
|
||||||
@@ -49,7 +51,6 @@ import CipherService from '../services/cipher.service';
|
|||||||
import CollectionService from '../services/collection.service';
|
import CollectionService from '../services/collection.service';
|
||||||
import i18nService from '../services/i18n.service';
|
import i18nService from '../services/i18n.service';
|
||||||
import LockService from '../services/lock.service';
|
import LockService from '../services/lock.service';
|
||||||
import SettingsService from '../services/settings.service';
|
|
||||||
import SyncService from '../services/sync.service';
|
import SyncService from '../services/sync.service';
|
||||||
|
|
||||||
export default class MainBackground {
|
export default class MainBackground {
|
||||||
@@ -65,7 +66,7 @@ export default class MainBackground {
|
|||||||
apiService: ApiServiceAbstraction;
|
apiService: ApiServiceAbstraction;
|
||||||
environmentService: EnvironmentServiceAbstraction;
|
environmentService: EnvironmentServiceAbstraction;
|
||||||
userService: UserServiceAbstraction;
|
userService: UserServiceAbstraction;
|
||||||
settingsService: SettingsService;
|
settingsService: SettingsServiceAbstraction;
|
||||||
cipherService: CipherService;
|
cipherService: CipherService;
|
||||||
folderService: FolderServiceAbstraction;
|
folderService: FolderServiceAbstraction;
|
||||||
collectionService: CollectionService;
|
collectionService: CollectionService;
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import { CryptoService } from 'jslib/abstractions/crypto.service';
|
|||||||
import { EnvironmentService } from 'jslib/abstractions/environment.service';
|
import { EnvironmentService } from 'jslib/abstractions/environment.service';
|
||||||
import { FolderService } from 'jslib/abstractions/folder.service';
|
import { FolderService } from 'jslib/abstractions/folder.service';
|
||||||
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
import { PlatformUtilsService } from 'jslib/abstractions/platformUtils.service';
|
||||||
|
import { SettingsService } from 'jslib/abstractions/settings.service';
|
||||||
import { StorageService } from 'jslib/abstractions/storage.service';
|
import { StorageService } from 'jslib/abstractions/storage.service';
|
||||||
import { TokenService } from 'jslib/abstractions/token.service';
|
import { TokenService } from 'jslib/abstractions/token.service';
|
||||||
import { TotpService } from 'jslib/abstractions/totp.service';
|
import { TotpService } from 'jslib/abstractions/totp.service';
|
||||||
@@ -34,7 +35,7 @@ export const utilsService = getBackgroundService<UtilsService>('utilsService');
|
|||||||
export const appIdService = getBackgroundService<AppIdService>('appIdService');
|
export const appIdService = getBackgroundService<AppIdService>('appIdService');
|
||||||
export const i18nService = getBackgroundService<any>('i18nService');
|
export const i18nService = getBackgroundService<any>('i18nService');
|
||||||
export const constantsService = getBackgroundService<ConstantsService>('constantsService');
|
export const constantsService = getBackgroundService<ConstantsService>('constantsService');
|
||||||
export const settingsService = getBackgroundService<any>('settingsService');
|
export const settingsService = getBackgroundService<SettingsService>('settingsService');
|
||||||
export const lockService = getBackgroundService<any>('lockService');
|
export const lockService = getBackgroundService<any>('lockService');
|
||||||
export const totpService = getBackgroundService<TotpService>('totpService');
|
export const totpService = getBackgroundService<TotpService>('totpService');
|
||||||
export const environmentService = getBackgroundService<EnvironmentService>('environmentService');
|
export const environmentService = getBackgroundService<EnvironmentService>('environmentService');
|
||||||
|
|||||||
@@ -21,12 +21,11 @@ import { ConstantsService } from 'jslib/services';
|
|||||||
import {
|
import {
|
||||||
ApiService,
|
ApiService,
|
||||||
CryptoService,
|
CryptoService,
|
||||||
|
SettingsService,
|
||||||
StorageService,
|
StorageService,
|
||||||
UserService,
|
UserService,
|
||||||
} from 'jslib/abstractions';
|
} from 'jslib/abstractions';
|
||||||
|
|
||||||
import SettingsService from './settings.service';
|
|
||||||
|
|
||||||
const Keys = {
|
const Keys = {
|
||||||
ciphersPrefix: 'ciphers_',
|
ciphersPrefix: 'ciphers_',
|
||||||
localData: 'sitesLocalData',
|
localData: 'sitesLocalData',
|
||||||
|
|||||||
@@ -1,63 +0,0 @@
|
|||||||
import {
|
|
||||||
StorageService,
|
|
||||||
UserService,
|
|
||||||
} from 'jslib/abstractions';
|
|
||||||
|
|
||||||
const Keys = {
|
|
||||||
settingsPrefix: 'settings_',
|
|
||||||
equivalentDomains: 'equivalentDomains',
|
|
||||||
};
|
|
||||||
|
|
||||||
export default class SettingsService {
|
|
||||||
private settingsCache: any;
|
|
||||||
|
|
||||||
constructor(private userService: UserService, private storageService: StorageService) {
|
|
||||||
}
|
|
||||||
|
|
||||||
clearCache(): void {
|
|
||||||
this.settingsCache = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
getEquivalentDomains(): Promise<any> {
|
|
||||||
return this.getSettingsKey(Keys.equivalentDomains);
|
|
||||||
}
|
|
||||||
|
|
||||||
async setEquivalentDomains(equivalentDomains: string[][]) {
|
|
||||||
await this.setSettingsKey(Keys.equivalentDomains, equivalentDomains);
|
|
||||||
}
|
|
||||||
|
|
||||||
async clear(userId: string): Promise<void> {
|
|
||||||
await this.storageService.remove(Keys.settingsPrefix + userId);
|
|
||||||
this.settingsCache = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Helpers
|
|
||||||
|
|
||||||
private async getSettings(): Promise<any> {
|
|
||||||
if (this.settingsCache == null) {
|
|
||||||
const userId = await this.userService.getUserId();
|
|
||||||
this.settingsCache = this.storageService.get(Keys.settingsPrefix + userId);
|
|
||||||
}
|
|
||||||
return this.settingsCache;
|
|
||||||
}
|
|
||||||
|
|
||||||
private async getSettingsKey(key: string): Promise<any> {
|
|
||||||
const settings = await this.getSettings();
|
|
||||||
if (settings != null && settings[key]) {
|
|
||||||
return settings[key];
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private async setSettingsKey(key: string, value: any): Promise<void> {
|
|
||||||
const userId = await this.userService.getUserId();
|
|
||||||
let settings = await this.getSettings();
|
|
||||||
if (!settings) {
|
|
||||||
settings = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
settings[key] = value;
|
|
||||||
await this.storageService.save(Keys.settingsPrefix + userId, settings);
|
|
||||||
this.settingsCache = settings;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
import CipherService from './cipher.service';
|
import CipherService from './cipher.service';
|
||||||
import CollectionService from './collection.service';
|
import CollectionService from './collection.service';
|
||||||
import SettingsService from './settings.service';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
ApiService,
|
ApiService,
|
||||||
CryptoService,
|
CryptoService,
|
||||||
FolderService,
|
FolderService,
|
||||||
MessagingService,
|
MessagingService,
|
||||||
|
SettingsService,
|
||||||
StorageService,
|
StorageService,
|
||||||
UserService,
|
UserService,
|
||||||
} from 'jslib/abstractions';
|
} from 'jslib/abstractions';
|
||||||
|
|||||||
Reference in New Issue
Block a user