mirror of
https://github.com/bitwarden/jslib
synced 2025-12-14 15:23:37 +00:00
Undo changes to CollectionService
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
import { Injectable } from "@angular/core";
|
import { Injectable } from "@angular/core";
|
||||||
|
|
||||||
|
import { ApiService } from "jslib-common/abstractions/api.service";
|
||||||
import { CipherService } from "jslib-common/abstractions/cipher.service";
|
import { CipherService } from "jslib-common/abstractions/cipher.service";
|
||||||
import { CollectionService } from "jslib-common/abstractions/collection.service";
|
import { CollectionService } from "jslib-common/abstractions/collection.service";
|
||||||
import { FolderService } from "jslib-common/abstractions/folder.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 { PolicyService } from "jslib-common/abstractions/policy.service";
|
||||||
import { StateService } from "jslib-common/abstractions/state.service";
|
import { StateService } from "jslib-common/abstractions/state.service";
|
||||||
import { PolicyType } from "jslib-common/enums/policyType";
|
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 { Organization } from "jslib-common/models/domain/organization";
|
||||||
|
import { CollectionDetailsResponse } from "jslib-common/models/response/collectionResponse";
|
||||||
import { CollectionView } from "jslib-common/models/view/collectionView";
|
import { CollectionView } from "jslib-common/models/view/collectionView";
|
||||||
import { FolderView } from "jslib-common/models/view/folderView";
|
import { FolderView } from "jslib-common/models/view/folderView";
|
||||||
|
|
||||||
@@ -23,7 +27,8 @@ export class VaultFilterService {
|
|||||||
protected folderService: FolderService,
|
protected folderService: FolderService,
|
||||||
protected cipherService: CipherService,
|
protected cipherService: CipherService,
|
||||||
protected collectionService: CollectionService,
|
protected collectionService: CollectionService,
|
||||||
protected policyService: PolicyService
|
protected policyService: PolicyService,
|
||||||
|
protected apiService: ApiService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async storeCollapsedFilterNodes(collapsedFilterNodes: Set<string>): Promise<void> {
|
async storeCollapsedFilterNodes(collapsedFilterNodes: Set<string>): Promise<void> {
|
||||||
@@ -61,7 +66,7 @@ export class VaultFilterService {
|
|||||||
|
|
||||||
async buildCollections(organizationId?: string): Promise<DynamicTreeNode<CollectionView>> {
|
async buildCollections(organizationId?: string): Promise<DynamicTreeNode<CollectionView>> {
|
||||||
const collections = this.getAllCollectionsFromServer
|
const collections = this.getAllCollectionsFromServer
|
||||||
? await this.collectionService.getOrgCollectionsFromServer(organizationId)
|
? await this.getAdminCollections(organizationId)
|
||||||
: await this.getUserCollections(organizationId);
|
: await this.getUserCollections(organizationId);
|
||||||
|
|
||||||
const nestedCollections = await this.collectionService.getAllNested(collections);
|
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[]> {
|
private async getUserCollections(organizationId?: string): Promise<CollectionView[]> {
|
||||||
const storedCollections = await this.collectionService.getAllDecrypted();
|
const storedCollections = await this.collectionService.getAllDecrypted();
|
||||||
return organizationId != null
|
return organizationId != null
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ export abstract class CollectionService {
|
|||||||
get: (id: string) => Promise<Collection>;
|
get: (id: string) => Promise<Collection>;
|
||||||
getAll: () => Promise<Collection[]>;
|
getAll: () => Promise<Collection[]>;
|
||||||
getAllDecrypted: () => Promise<CollectionView[]>;
|
getAllDecrypted: () => Promise<CollectionView[]>;
|
||||||
getOrgCollectionsFromServer: (organizationId: string) => Promise<CollectionView[]>;
|
|
||||||
getAllNested: (collections?: CollectionView[]) => Promise<TreeNode<CollectionView>[]>;
|
getAllNested: (collections?: CollectionView[]) => Promise<TreeNode<CollectionView>[]>;
|
||||||
getNested: (id: string) => Promise<TreeNode<CollectionView>>;
|
getNested: (id: string) => Promise<TreeNode<CollectionView>>;
|
||||||
upsert: (collection: CollectionData | CollectionData[]) => Promise<any>;
|
upsert: (collection: CollectionData | CollectionData[]) => Promise<any>;
|
||||||
|
|||||||
@@ -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 { CollectionService as CollectionServiceAbstraction } from "../abstractions/collection.service";
|
||||||
import { CryptoService } from "../abstractions/crypto.service";
|
import { CryptoService } from "../abstractions/crypto.service";
|
||||||
import { I18nService } from "../abstractions/i18n.service";
|
import { I18nService } from "../abstractions/i18n.service";
|
||||||
@@ -18,8 +15,7 @@ export class CollectionService implements CollectionServiceAbstraction {
|
|||||||
constructor(
|
constructor(
|
||||||
private cryptoService: CryptoService,
|
private cryptoService: CryptoService,
|
||||||
private i18nService: I18nService,
|
private i18nService: I18nService,
|
||||||
private stateService: StateService,
|
private stateService: StateService
|
||||||
private apiService: ApiService
|
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
async clearCache(userId?: string): Promise<void> {
|
async clearCache(userId?: string): Promise<void> {
|
||||||
@@ -158,18 +154,4 @@ export class CollectionService implements CollectionServiceAbstraction {
|
|||||||
|
|
||||||
await this.replace(collections);
|
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user