mirror of
https://github.com/bitwarden/jslib
synced 2025-12-22 03:03:15 +00:00
[chore] Remove unused services
Several services are no longer in use because of the expanded state service. These have simply been removed.
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
export abstract class ApiKeyService {
|
||||
setInformation: (clientId: string, clientSecret: string) => Promise<any>;
|
||||
clear: () => Promise<any>;
|
||||
getClientId: () => Promise<string>;
|
||||
getClientSecret: () => Promise<string>;
|
||||
getEntityType: () => Promise<string>;
|
||||
getEntityId: () => Promise<string>;
|
||||
isAuthenticated: () => Promise<boolean>;
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
import { OrganizationData } from '../models/data/organizationData';
|
||||
import { ProviderData } from '../models/data/providerData';
|
||||
import { Organization } from '../models/domain/organization';
|
||||
import { Provider } from '../models/domain/provider';
|
||||
|
||||
import { KdfType } from '../enums/kdfType';
|
||||
|
||||
export abstract class UserService {
|
||||
setInformation: (userId: string, email: string, kdf: KdfType, kdfIterations: number) => Promise<any>;
|
||||
setEmailVerified: (emailVerified: boolean) => Promise<any>;
|
||||
setSecurityStamp: (stamp: string) => Promise<any>;
|
||||
setForcePasswordReset: (forcePasswordReset: boolean) => Promise<any>;
|
||||
getUserId: () => Promise<string>;
|
||||
getEmail: () => Promise<string>;
|
||||
getSecurityStamp: () => Promise<string>;
|
||||
getKdf: () => Promise<KdfType>;
|
||||
getKdfIterations: () => Promise<number>;
|
||||
getEmailVerified: () => Promise<boolean>;
|
||||
getForcePasswordReset: () => Promise<boolean>;
|
||||
clear: () => Promise<any>;
|
||||
isAuthenticated: () => Promise<boolean>;
|
||||
canAccessPremium: () => Promise<boolean>;
|
||||
getOrganization: (id: string) => Promise<Organization>;
|
||||
getOrganizationByIdentifier: (identifier: string) => Promise<Organization>;
|
||||
getAllOrganizations: () => Promise<Organization[]>;
|
||||
replaceOrganizations: (organizations: { [id: string]: OrganizationData; }) => Promise<any>;
|
||||
clearOrganizations: (userId: string) => Promise<any>;
|
||||
getProvider: (id: string) => Promise<Provider>;
|
||||
getAllProviders: () => Promise<Provider[]>;
|
||||
replaceProviders: (providers: { [id: string]: ProviderData; }) => Promise<any>;
|
||||
clearProviders: (userId: string) => Promise<any>;
|
||||
}
|
||||
@@ -1,86 +0,0 @@
|
||||
import { ApiKeyService as ApiKeyServiceAbstraction } from '../abstractions/apiKey.service';
|
||||
import { StorageService } from '../abstractions/storage.service';
|
||||
import { TokenService } from '../abstractions/token.service';
|
||||
|
||||
import { Utils } from '../misc/utils';
|
||||
|
||||
const Keys = {
|
||||
clientId: 'clientId',
|
||||
clientSecret: 'clientSecret',
|
||||
entityType: 'entityType',
|
||||
entityId: 'entityId',
|
||||
};
|
||||
|
||||
|
||||
export class ApiKeyService implements ApiKeyServiceAbstraction {
|
||||
private clientId: string;
|
||||
private clientSecret: string;
|
||||
private entityType: string;
|
||||
private entityId: string;
|
||||
|
||||
constructor(private tokenService: TokenService, private storageService: StorageService) { }
|
||||
|
||||
async setInformation(clientId: string, clientSecret: string) {
|
||||
this.clientId = clientId;
|
||||
this.clientSecret = clientSecret;
|
||||
const idParts = clientId.split('.');
|
||||
|
||||
if (idParts.length !== 2 || !Utils.isGuid(idParts[1])) {
|
||||
throw Error('Invalid clientId');
|
||||
}
|
||||
this.entityType = idParts[0];
|
||||
this.entityId = idParts[1];
|
||||
|
||||
await this.storageService.save(Keys.clientId, this.clientId);
|
||||
await this.storageService.save(Keys.entityId, this.entityId);
|
||||
await this.storageService.save(Keys.entityType, this.entityType);
|
||||
await this.storageService.save(Keys.clientSecret, this.clientSecret);
|
||||
}
|
||||
|
||||
async getClientId(): Promise<string> {
|
||||
if (this.clientId == null) {
|
||||
this.clientId = await this.storageService.get<string>(Keys.clientId);
|
||||
}
|
||||
return this.clientId;
|
||||
}
|
||||
|
||||
async getClientSecret(): Promise<string> {
|
||||
if (this.clientSecret == null) {
|
||||
this.clientSecret = await this.storageService.get<string>(Keys.clientSecret);
|
||||
}
|
||||
return this.clientSecret;
|
||||
}
|
||||
|
||||
async getEntityType(): Promise<string> {
|
||||
if (this.entityType == null) {
|
||||
this.entityType = await this.storageService.get<string>(Keys.entityType);
|
||||
}
|
||||
return this.entityType;
|
||||
}
|
||||
|
||||
async getEntityId(): Promise<string> {
|
||||
if (this.entityId == null) {
|
||||
this.entityId = await this.storageService.get<string>(Keys.entityId);
|
||||
}
|
||||
return this.entityId;
|
||||
}
|
||||
|
||||
async clear(): Promise<any> {
|
||||
await this.storageService.remove(Keys.clientId);
|
||||
await this.storageService.remove(Keys.clientSecret);
|
||||
await this.storageService.remove(Keys.entityId);
|
||||
await this.storageService.remove(Keys.entityType);
|
||||
|
||||
this.clientId = this.clientSecret = this.entityId = this.entityType = null;
|
||||
}
|
||||
|
||||
async isAuthenticated(): Promise<boolean> {
|
||||
const token = await this.tokenService.getToken();
|
||||
if (token == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const entityId = await this.getEntityId();
|
||||
return entityId != null;
|
||||
}
|
||||
}
|
||||
@@ -1,68 +0,0 @@
|
||||
export class ConstantsService {
|
||||
static readonly environmentUrlsKey: string = 'environmentUrls';
|
||||
static readonly disableGaKey: string = 'disableGa';
|
||||
static readonly disableAddLoginNotificationKey: string = 'disableAddLoginNotification';
|
||||
static readonly disableChangedPasswordNotificationKey: string = 'disableChangedPasswordNotification';
|
||||
static readonly disableContextMenuItemKey: string = 'disableContextMenuItem';
|
||||
static readonly disableFaviconKey: string = 'disableFavicon';
|
||||
static readonly disableBadgeCounterKey: string = 'disableBadgeCounter';
|
||||
static readonly disableAutoTotpCopyKey: string = 'disableAutoTotpCopy';
|
||||
static readonly disableAutoBiometricsPromptKey: string = 'noAutoPromptBiometrics';
|
||||
static readonly enableAutoFillOnPageLoadKey: string = 'enableAutoFillOnPageLoad';
|
||||
static readonly autoFillOnPageLoadDefaultKey: string = 'autoFillOnPageLoadDefault';
|
||||
static readonly vaultTimeoutKey: string = 'lockOption';
|
||||
static readonly vaultTimeoutActionKey: string = 'vaultTimeoutAction';
|
||||
static readonly lastActiveKey: string = 'lastActive';
|
||||
static readonly neverDomainsKey: string = 'neverDomains';
|
||||
static readonly installedVersionKey: string = 'installedVersion';
|
||||
static readonly localeKey: string = 'locale';
|
||||
static readonly themeKey: string = 'theme';
|
||||
static readonly collapsedGroupingsKey: string = 'collapsedGroupings';
|
||||
static readonly autoConfirmFingerprints: string = 'autoConfirmFingerprints';
|
||||
static readonly dontShowCardsCurrentTab: string = 'dontShowCardsCurrentTab';
|
||||
static readonly dontShowIdentitiesCurrentTab: string = 'dontShowIdentitiesCurrentTab';
|
||||
static readonly defaultUriMatch: string = 'defaultUriMatch';
|
||||
static readonly pinProtectedKey: string = 'pinProtectedKey';
|
||||
static readonly protectedPin: string = 'protectedPin';
|
||||
static readonly clearClipboardKey: string = 'clearClipboardKey';
|
||||
static readonly eventCollectionKey: string = 'eventCollection';
|
||||
static readonly ssoCodeVerifierKey: string = 'ssoCodeVerifier';
|
||||
static readonly ssoStateKey: string = 'ssoState';
|
||||
static readonly biometricUnlockKey: string = 'biometric';
|
||||
static readonly biometricText: string = 'biometricText';
|
||||
static readonly biometricAwaitingAcceptance: string = 'biometricAwaitingAcceptance';
|
||||
static readonly biometricFingerprintValidated: string = 'biometricFingerprintValidated';
|
||||
|
||||
readonly environmentUrlsKey: string = ConstantsService.environmentUrlsKey;
|
||||
readonly disableGaKey: string = ConstantsService.disableGaKey;
|
||||
readonly disableAddLoginNotificationKey: string = ConstantsService.disableAddLoginNotificationKey;
|
||||
readonly disableContextMenuItemKey: string = ConstantsService.disableContextMenuItemKey;
|
||||
readonly disableFaviconKey: string = ConstantsService.disableFaviconKey;
|
||||
readonly disableBadgeCounterKey: string = ConstantsService.disableBadgeCounterKey;
|
||||
readonly disableAutoTotpCopyKey: string = ConstantsService.disableAutoTotpCopyKey;
|
||||
readonly disableAutoBiometricsPromptKey: string = ConstantsService.disableAutoBiometricsPromptKey;
|
||||
readonly enableAutoFillOnPageLoadKey: string = ConstantsService.enableAutoFillOnPageLoadKey;
|
||||
readonly autoFillOnPageLoadDefaultKey: string = ConstantsService.autoFillOnPageLoadDefaultKey;
|
||||
readonly vaultTimeoutKey: string = ConstantsService.vaultTimeoutKey;
|
||||
readonly vaultTimeoutActionKey: string = ConstantsService.vaultTimeoutActionKey;
|
||||
readonly lastActiveKey: string = ConstantsService.lastActiveKey;
|
||||
readonly neverDomainsKey: string = ConstantsService.neverDomainsKey;
|
||||
readonly installedVersionKey: string = ConstantsService.installedVersionKey;
|
||||
readonly localeKey: string = ConstantsService.localeKey;
|
||||
readonly themeKey: string = ConstantsService.themeKey;
|
||||
readonly collapsedGroupingsKey: string = ConstantsService.collapsedGroupingsKey;
|
||||
readonly autoConfirmFingerprints: string = ConstantsService.autoConfirmFingerprints;
|
||||
readonly dontShowCardsCurrentTab: string = ConstantsService.dontShowCardsCurrentTab;
|
||||
readonly dontShowIdentitiesCurrentTab: string = ConstantsService.dontShowIdentitiesCurrentTab;
|
||||
readonly defaultUriMatch: string = ConstantsService.defaultUriMatch;
|
||||
readonly pinProtectedKey: string = ConstantsService.pinProtectedKey;
|
||||
readonly protectedPin: string = ConstantsService.protectedPin;
|
||||
readonly clearClipboardKey: string = ConstantsService.clearClipboardKey;
|
||||
readonly eventCollectionKey: string = ConstantsService.eventCollectionKey;
|
||||
readonly ssoCodeVerifierKey: string = ConstantsService.ssoCodeVerifierKey;
|
||||
readonly ssoStateKey: string = ConstantsService.ssoStateKey;
|
||||
readonly biometricUnlockKey: string = ConstantsService.biometricUnlockKey;
|
||||
readonly biometricText: string = ConstantsService.biometricText;
|
||||
readonly biometricAwaitingAcceptance: string = ConstantsService.biometricAwaitingAcceptance;
|
||||
readonly biometricFingerprintValidated: string = ConstantsService.biometricFingerprintValidated;
|
||||
}
|
||||
@@ -1,232 +0,0 @@
|
||||
import { StorageService } from '../abstractions/storage.service';
|
||||
import { TokenService } from '../abstractions/token.service';
|
||||
import { UserService as UserServiceAbstraction } from '../abstractions/user.service';
|
||||
|
||||
import { OrganizationData } from '../models/data/organizationData';
|
||||
import { Organization } from '../models/domain/organization';
|
||||
|
||||
import { KdfType } from '../enums/kdfType';
|
||||
import { ProviderData } from '../models/data/providerData';
|
||||
import { Provider } from '../models/domain/provider';
|
||||
|
||||
const Keys = {
|
||||
userId: 'userId',
|
||||
userEmail: 'userEmail',
|
||||
stamp: 'securityStamp',
|
||||
kdf: 'kdf',
|
||||
kdfIterations: 'kdfIterations',
|
||||
organizationsPrefix: 'organizations_',
|
||||
providersPrefix: 'providers_',
|
||||
emailVerified: 'emailVerified',
|
||||
forcePasswordReset: 'forcePasswordReset',
|
||||
};
|
||||
|
||||
export class UserService implements UserServiceAbstraction {
|
||||
private userId: string;
|
||||
private email: string;
|
||||
private stamp: string;
|
||||
private kdf: KdfType;
|
||||
private kdfIterations: number;
|
||||
private emailVerified: boolean;
|
||||
private forcePasswordReset: boolean;
|
||||
|
||||
constructor(private tokenService: TokenService, private storageService: StorageService) { }
|
||||
|
||||
async setInformation(userId: string, email: string, kdf: KdfType, kdfIterations: number): Promise<any> {
|
||||
this.email = email;
|
||||
this.userId = userId;
|
||||
this.kdf = kdf;
|
||||
this.kdfIterations = kdfIterations;
|
||||
|
||||
await this.storageService.save(Keys.userEmail, email);
|
||||
await this.storageService.save(Keys.userId, userId);
|
||||
await this.storageService.save(Keys.kdf, kdf);
|
||||
await this.storageService.save(Keys.kdfIterations, kdfIterations);
|
||||
}
|
||||
|
||||
setSecurityStamp(stamp: string): Promise<any> {
|
||||
this.stamp = stamp;
|
||||
return this.storageService.save(Keys.stamp, stamp);
|
||||
}
|
||||
|
||||
setEmailVerified(emailVerified: boolean) {
|
||||
this.emailVerified = emailVerified;
|
||||
return this.storageService.save(Keys.emailVerified, emailVerified);
|
||||
}
|
||||
|
||||
setForcePasswordReset(forcePasswordReset: boolean) {
|
||||
this.forcePasswordReset = forcePasswordReset;
|
||||
return this.storageService.save(Keys.forcePasswordReset, forcePasswordReset);
|
||||
}
|
||||
|
||||
async getUserId(): Promise<string> {
|
||||
if (this.userId == null) {
|
||||
this.userId = await this.storageService.get<string>(Keys.userId);
|
||||
}
|
||||
return this.userId;
|
||||
}
|
||||
|
||||
async getEmail(): Promise<string> {
|
||||
if (this.email == null) {
|
||||
this.email = await this.storageService.get<string>(Keys.userEmail);
|
||||
}
|
||||
return this.email;
|
||||
}
|
||||
|
||||
async getSecurityStamp(): Promise<string> {
|
||||
if (this.stamp == null) {
|
||||
this.stamp = await this.storageService.get<string>(Keys.stamp);
|
||||
}
|
||||
return this.stamp;
|
||||
}
|
||||
|
||||
async getKdf(): Promise<KdfType> {
|
||||
if (this.kdf == null) {
|
||||
this.kdf = await this.storageService.get<KdfType>(Keys.kdf);
|
||||
}
|
||||
return this.kdf;
|
||||
}
|
||||
|
||||
async getKdfIterations(): Promise<number> {
|
||||
if (this.kdfIterations == null) {
|
||||
this.kdfIterations = await this.storageService.get<number>(Keys.kdfIterations);
|
||||
}
|
||||
return this.kdfIterations;
|
||||
}
|
||||
|
||||
async getEmailVerified(): Promise<boolean> {
|
||||
if (this.emailVerified == null) {
|
||||
this.emailVerified = await this.storageService.get<boolean>(Keys.emailVerified);
|
||||
}
|
||||
return this.emailVerified;
|
||||
}
|
||||
|
||||
async getForcePasswordReset(): Promise<boolean> {
|
||||
if (this.forcePasswordReset == null) {
|
||||
this.forcePasswordReset = await this.storageService.get<boolean>(Keys.forcePasswordReset);
|
||||
}
|
||||
return this.forcePasswordReset;
|
||||
}
|
||||
|
||||
async clear(): Promise<any> {
|
||||
const userId = await this.getUserId();
|
||||
|
||||
await this.storageService.remove(Keys.userId);
|
||||
await this.storageService.remove(Keys.userEmail);
|
||||
await this.storageService.remove(Keys.stamp);
|
||||
await this.storageService.remove(Keys.kdf);
|
||||
await this.storageService.remove(Keys.kdfIterations);
|
||||
await this.storageService.remove(Keys.forcePasswordReset);
|
||||
await this.clearOrganizations(userId);
|
||||
await this.clearProviders(userId);
|
||||
|
||||
this.userId = this.email = this.stamp = null;
|
||||
this.kdf = null;
|
||||
this.kdfIterations = null;
|
||||
}
|
||||
|
||||
async isAuthenticated(): Promise<boolean> {
|
||||
const token = await this.tokenService.getToken();
|
||||
if (token == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const userId = await this.getUserId();
|
||||
return userId != null;
|
||||
}
|
||||
|
||||
async canAccessPremium(): Promise<boolean> {
|
||||
const authed = await this.isAuthenticated();
|
||||
if (!authed) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const tokenPremium = this.tokenService.getPremium();
|
||||
if (tokenPremium) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const orgs = await this.getAllOrganizations();
|
||||
for (let i = 0; i < orgs.length; i++) {
|
||||
if (orgs[i].usersGetPremium && orgs[i].enabled) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
async getOrganization(id: string): Promise<Organization> {
|
||||
const userId = await this.getUserId();
|
||||
const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(
|
||||
Keys.organizationsPrefix + userId);
|
||||
if (organizations == null || !organizations.hasOwnProperty(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Organization(organizations[id]);
|
||||
}
|
||||
|
||||
async getOrganizationByIdentifier(identifier: string): Promise<Organization> {
|
||||
const organizations = await this.getAllOrganizations();
|
||||
if (organizations == null || organizations.length === 0) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return organizations.find(o => o.identifier === identifier);
|
||||
}
|
||||
|
||||
async getAllOrganizations(): Promise<Organization[]> {
|
||||
const userId = await this.getUserId();
|
||||
const organizations = await this.storageService.get<{ [id: string]: OrganizationData; }>(
|
||||
Keys.organizationsPrefix + userId);
|
||||
const response: Organization[] = [];
|
||||
for (const id in organizations) {
|
||||
if (organizations.hasOwnProperty(id) && !organizations[id].isProviderUser) {
|
||||
response.push(new Organization(organizations[id]));
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
async replaceOrganizations(organizations: { [id: string]: OrganizationData; }): Promise<any> {
|
||||
const userId = await this.getUserId();
|
||||
await this.storageService.save(Keys.organizationsPrefix + userId, organizations);
|
||||
}
|
||||
|
||||
async clearOrganizations(userId: string): Promise<any> {
|
||||
await this.storageService.remove(Keys.organizationsPrefix + userId);
|
||||
}
|
||||
|
||||
async getProvider(id: string): Promise<Provider> {
|
||||
const userId = await this.getUserId();
|
||||
const providers = await this.storageService.get<{ [id: string]: ProviderData; }>(
|
||||
Keys.providersPrefix + userId);
|
||||
if (providers == null || !providers.hasOwnProperty(id)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return new Provider(providers[id]);
|
||||
}
|
||||
|
||||
async getAllProviders(): Promise<Provider[]> {
|
||||
const userId = await this.getUserId();
|
||||
const providers = await this.storageService.get<{ [id: string]: ProviderData; }>(
|
||||
Keys.providersPrefix + userId);
|
||||
const response: Provider[] = [];
|
||||
for (const id in providers) {
|
||||
if (providers.hasOwnProperty(id)) {
|
||||
response.push(new Provider(providers[id]));
|
||||
}
|
||||
}
|
||||
return response;
|
||||
}
|
||||
|
||||
async replaceProviders(providers: { [id: string]: ProviderData; }): Promise<any> {
|
||||
const userId = await this.getUserId();
|
||||
await this.storageService.save(Keys.providersPrefix + userId, providers);
|
||||
}
|
||||
|
||||
async clearProviders(userId: string): Promise<any> {
|
||||
await this.storageService.remove(Keys.providersPrefix + userId);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user