1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-17 00:33:44 +00:00

[PM-1071] Display import-details-dialog on successful import (#4817)

* Prefer callback over error-flow to prompt for password

Remove error-flow to request file password
Prefer callback, which has to be provided when retrieving/creating an instance.
Delete ImportError
Call BitwardenPasswordProtector for all Bitwarden json imports, as it extends BitwardenJsonImporter
Throw errors instead of returning
Return ImportResult
Fix and extend tests import.service
Replace "@fluffy-spoon/substitute" with "jest-mock-extended"

* Fix up test cases

Delete bitwarden-json-importer.spec.ts
Add test case to ensure bitwarden-json-importer.ts is called given unencrypted or account-protected files

* Move file-password-prompt into dialog-folder

* Add import success dialog

* Fix typo

* Only list the type when at least one got imported

* update copy based on design feedback

* Remove unnecessary /index import

* Remove promptForPassword_callback from interface

PR feedback from @MGibson1 that giving every importer the ability to request a password is unnecessary. Instead, we can pass the callback into the constructor for every importer that needs this functionality

* Remove unneeded import of BitwardenJsonImporter

* Fix spec constructor

* Fixed organizational import

Added an else statement, or else we'd import into an org and then also import into an individual vault
This commit is contained in:
Daniel James Smith
2023-04-06 22:41:09 +02:00
committed by GitHub
parent 19626a7837
commit cf2d8b266a
24 changed files with 397 additions and 287 deletions

View File

@@ -1,6 +1,6 @@
import { Importer } from "../importers/importer";
import { ImportError } from "../models/import-error";
import { ImportOption, ImportType } from "../models/import-options";
import { ImportResult } from "../models/import-result";
export abstract class ImportServiceAbstraction {
featuredImportOptions: readonly ImportOption[];
@@ -10,10 +10,10 @@ export abstract class ImportServiceAbstraction {
importer: Importer,
fileContents: string,
organizationId?: string
) => Promise<ImportError>;
) => Promise<ImportResult>;
getImporter: (
format: ImportType | "bitwardenpasswordprotected",
organizationId: string,
password?: string
promptForPassword_callback: () => Promise<string>,
organizationId: string
) => Importer;
}