1
0
mirror of https://github.com/bitwarden/jslib synced 2025-12-06 00:03:29 +00:00

Undo changes to CollectionService

This commit is contained in:
Thomas Rittson
2022-05-17 17:13:19 +10:00
parent daaf2870ac
commit c489482f70
3 changed files with 22 additions and 22 deletions

View File

@@ -1,5 +1,6 @@
import { Injectable } from "@angular/core";
import { ApiService } from "jslib-common/abstractions/api.service";
import { CipherService } from "jslib-common/abstractions/cipher.service";
import { CollectionService } from "jslib-common/abstractions/collection.service";
import { FolderService } from "jslib-common/abstractions/folder.service";
@@ -7,7 +8,10 @@ import { OrganizationService } from "jslib-common/abstractions/organization.serv
import { PolicyService } from "jslib-common/abstractions/policy.service";
import { StateService } from "jslib-common/abstractions/state.service";
import { PolicyType } from "jslib-common/enums/policyType";
import { CollectionData } from "jslib-common/models/data/collectionData";
import { Collection } from "jslib-common/models/domain/collection";
import { Organization } from "jslib-common/models/domain/organization";
import { CollectionDetailsResponse } from "jslib-common/models/response/collectionResponse";
import { CollectionView } from "jslib-common/models/view/collectionView";
import { FolderView } from "jslib-common/models/view/folderView";
@@ -23,7 +27,8 @@ export class VaultFilterService {
protected folderService: FolderService,
protected cipherService: CipherService,
protected collectionService: CollectionService,
protected policyService: PolicyService
protected policyService: PolicyService,
protected apiService: ApiService
) {}
async storeCollapsedFilterNodes(collapsedFilterNodes: Set<string>): Promise<void> {
@@ -61,7 +66,7 @@ export class VaultFilterService {
async buildCollections(organizationId?: string): Promise<DynamicTreeNode<CollectionView>> {
const collections = this.getAllCollectionsFromServer
? await this.collectionService.getOrgCollectionsFromServer(organizationId)
? await this.getAdminCollections(organizationId)
: await this.getUserCollections(organizationId);
const nestedCollections = await this.collectionService.getAllNested(collections);
@@ -71,6 +76,20 @@ export class VaultFilterService {
});
}
private async getAdminCollections(organizationId: string) {
let result: CollectionView[] = [];
const collectionResponse = await this.apiService.getCollections(organizationId);
if (collectionResponse?.data != null && collectionResponse.data.length) {
const collectionDomains = collectionResponse.data.map(
(r: CollectionDetailsResponse) => new Collection(new CollectionData(r))
);
result = await this.collectionService.decryptMany(collectionDomains);
}
return result;
}
private async getUserCollections(organizationId?: string): Promise<CollectionView[]> {
const storedCollections = await this.collectionService.getAllDecrypted();
return organizationId != null

View File

@@ -10,7 +10,6 @@ export abstract class CollectionService {
get: (id: string) => Promise<Collection>;
getAll: () => Promise<Collection[]>;
getAllDecrypted: () => Promise<CollectionView[]>;
getOrgCollectionsFromServer: (organizationId: string) => Promise<CollectionView[]>;
getAllNested: (collections?: CollectionView[]) => Promise<TreeNode<CollectionView>[]>;
getNested: (id: string) => Promise<TreeNode<CollectionView>>;
upsert: (collection: CollectionData | CollectionData[]) => Promise<any>;

View File

@@ -1,6 +1,3 @@
import { ApiService } from "jslib-common/abstractions/api.service";
import { CollectionDetailsResponse } from "jslib-common/models/response/collectionResponse";
import { CollectionService as CollectionServiceAbstraction } from "../abstractions/collection.service";
import { CryptoService } from "../abstractions/crypto.service";
import { I18nService } from "../abstractions/i18n.service";
@@ -18,8 +15,7 @@ export class CollectionService implements CollectionServiceAbstraction {
constructor(
private cryptoService: CryptoService,
private i18nService: I18nService,
private stateService: StateService,
private apiService: ApiService
private stateService: StateService
) {}
async clearCache(userId?: string): Promise<void> {
@@ -158,18 +154,4 @@ export class CollectionService implements CollectionServiceAbstraction {
await this.replace(collections);
}
async getOrgCollectionsFromServer(organizationId: string) {
let result: CollectionView[] = [];
const collectionResponse = await this.apiService.getCollections(organizationId);
if (collectionResponse?.data != null && collectionResponse.data.length) {
const collectionDomains = collectionResponse.data.map(
(r) => new Collection(new CollectionData(r as CollectionDetailsResponse))
);
result = await this.decryptMany(collectionDomains);
}
return result;
}
}