74 lines
2.4 KiB
TypeScript
74 lines
2.4 KiB
TypeScript
import { VaultFilter } from "@bitwarden/angular/modules/vault-filter/models/vault-filter.model";
|
|
import { VaultFilterService as BaseVaultFilterService } from "@bitwarden/angular/modules/vault-filter/vault-filter.service";
|
|
import { CipherService } from "@bitwarden/common/abstractions/cipher.service";
|
|
import { CollectionService } from "@bitwarden/common/abstractions/collection.service";
|
|
import { FolderService } from "@bitwarden/common/abstractions/folder.service";
|
|
import { OrganizationService } from "@bitwarden/common/abstractions/organization.service";
|
|
import { PolicyService } from "@bitwarden/common/abstractions/policy.service";
|
|
import { StateService } from "@bitwarden/common/abstractions/state.service";
|
|
import { CipherView } from "@bitwarden/common/models/view/cipherView";
|
|
|
|
export class VaultFilterService extends BaseVaultFilterService {
|
|
vaultFilter: VaultFilter = new VaultFilter();
|
|
|
|
allVaults = "allVaults";
|
|
myVault = "myVault";
|
|
|
|
constructor(
|
|
stateService: StateService,
|
|
organizationService: OrganizationService,
|
|
folderService: FolderService,
|
|
cipherService: CipherService,
|
|
collectionService: CollectionService,
|
|
policyService: PolicyService
|
|
) {
|
|
super(
|
|
stateService,
|
|
organizationService,
|
|
folderService,
|
|
cipherService,
|
|
collectionService,
|
|
policyService
|
|
);
|
|
this.vaultFilter.myVaultOnly = false;
|
|
this.vaultFilter.selectedOrganizationId = null;
|
|
}
|
|
|
|
getVaultFilter() {
|
|
return this.vaultFilter;
|
|
}
|
|
|
|
setVaultFilter(filter: string) {
|
|
if (filter === this.allVaults) {
|
|
this.vaultFilter.myVaultOnly = false;
|
|
this.vaultFilter.selectedOrganizationId = null;
|
|
} else if (filter === this.myVault) {
|
|
this.vaultFilter.myVaultOnly = true;
|
|
this.vaultFilter.selectedOrganizationId = null;
|
|
} else {
|
|
this.vaultFilter.myVaultOnly = false;
|
|
this.vaultFilter.selectedOrganizationId = filter;
|
|
}
|
|
}
|
|
|
|
clear() {
|
|
this.setVaultFilter(this.allVaults);
|
|
}
|
|
|
|
filterCipherForSelectedVault(cipher: CipherView) {
|
|
if (!this.vaultFilter.selectedOrganizationId && !this.vaultFilter.myVaultOnly) {
|
|
return false;
|
|
}
|
|
if (this.vaultFilter.selectedOrganizationId) {
|
|
if (cipher.organizationId === this.vaultFilter.selectedOrganizationId) {
|
|
return false;
|
|
}
|
|
} else if (this.vaultFilter.myVaultOnly) {
|
|
if (!cipher.organizationId) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|