mirror of
https://github.com/bitwarden/browser
synced 2025-12-14 15:23:33 +00:00
[PM-16227] Move import to sdk and enable it in browser/web (#12479)
* Move import to sdk and enable it in browser/web * Add uncomitted files * Update package lock * Fix prettier formatting * Fix build * Rewrite import logic * Update ssh import logic for cipher form component * Fix build on browser * Break early in retry logic * Fix build * Fix build * Fix build errors * Update paste icons and throw error on wrong import * Fix tests * Fix build for cli * Undo change to jest config * Undo change to feature flag enum * Remove unneeded lifetime * Fix browser build * Refactor control flow * Fix i18n key and improve import behavior * Remove for loop limit * Clean up tests * Remove unused code * Update libs/vault/src/cipher-form/components/sshkey-section/sshkey-section.component.ts Co-authored-by: SmithThe4th <gsmith@bitwarden.com> * Move import logic to service and add tests * Fix linting * Remove erroneous includes * Attempt to fix storybook * Fix storybook, explicitly implement ssh-import-prompt service abstraction * Fix eslint * Update libs/importer/src/importers/bitwarden/bitwarden-json-importer.ts Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com> * Fix services module * Remove ssh import sdk init code * Add tests for errors * Fix import * Fix import * Fix pkcs8 encrypted key not parsing * Fix import button showing on web --------- Co-authored-by: SmithThe4th <gsmith@bitwarden.com> Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com>
This commit is contained in:
@@ -96,6 +96,7 @@ import {
|
||||
DefaultThemeStateService,
|
||||
ThemeStateService,
|
||||
} from "@bitwarden/common/platform/theming/theme-state.service";
|
||||
import { DialogService, ToastService } from "@bitwarden/components";
|
||||
import { PasswordGenerationServiceAbstraction } from "@bitwarden/generator-legacy";
|
||||
import {
|
||||
KdfConfigService,
|
||||
@@ -103,6 +104,7 @@ import {
|
||||
BiometricsService,
|
||||
} from "@bitwarden/key-management";
|
||||
import { LockComponentService } from "@bitwarden/key-management-ui";
|
||||
import { DefaultSshImportPromptService, SshImportPromptService } from "@bitwarden/vault";
|
||||
|
||||
import { flagEnabled } from "../../utils/flags";
|
||||
import { PolicyListService } from "../admin-console/core/policy-list.service";
|
||||
@@ -349,6 +351,11 @@ const safeProviders: SafeProvider[] = [
|
||||
useClass: WebLoginDecryptionOptionsService,
|
||||
deps: [MessagingService, RouterService, AcceptOrganizationInviteService],
|
||||
}),
|
||||
safeProvider({
|
||||
provide: SshImportPromptService,
|
||||
useClass: DefaultSshImportPromptService,
|
||||
deps: [DialogService, ToastService, PlatformUtilsService, I18nServiceAbstraction],
|
||||
}),
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@@ -30,7 +30,7 @@ import { Launchable } from "@bitwarden/common/vault/interfaces/launchable";
|
||||
import { CipherAuthorizationService } from "@bitwarden/common/vault/services/cipher-authorization.service";
|
||||
import { DialogService, ToastService } from "@bitwarden/components";
|
||||
import { PasswordGenerationServiceAbstraction } from "@bitwarden/generator-legacy";
|
||||
import { PasswordRepromptService } from "@bitwarden/vault";
|
||||
import { PasswordRepromptService, SshImportPromptService } from "@bitwarden/vault";
|
||||
|
||||
@Component({
|
||||
selector: "app-vault-add-edit",
|
||||
@@ -76,6 +76,7 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit, On
|
||||
cipherAuthorizationService: CipherAuthorizationService,
|
||||
toastService: ToastService,
|
||||
sdkService: SdkService,
|
||||
sshImportPromptService: SshImportPromptService,
|
||||
) {
|
||||
super(
|
||||
cipherService,
|
||||
@@ -98,6 +99,7 @@ export class AddEditComponent extends BaseAddEditComponent implements OnInit, On
|
||||
cipherAuthorizationService,
|
||||
toastService,
|
||||
sdkService,
|
||||
sshImportPromptService,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ import { Cipher } from "@bitwarden/common/vault/models/domain/cipher";
|
||||
import { CipherAuthorizationService } from "@bitwarden/common/vault/services/cipher-authorization.service";
|
||||
import { DialogService, ToastService } from "@bitwarden/components";
|
||||
import { PasswordGenerationServiceAbstraction } from "@bitwarden/generator-legacy";
|
||||
import { PasswordRepromptService } from "@bitwarden/vault";
|
||||
import { PasswordRepromptService, SshImportPromptService } from "@bitwarden/vault";
|
||||
|
||||
import { AddEditComponent as BaseAddEditComponent } from "../individual-vault/add-edit.component";
|
||||
|
||||
@@ -64,6 +64,7 @@ export class AddEditComponent extends BaseAddEditComponent {
|
||||
cipherAuthorizationService: CipherAuthorizationService,
|
||||
toastService: ToastService,
|
||||
sdkService: SdkService,
|
||||
sshImportPromptService: SshImportPromptService,
|
||||
) {
|
||||
super(
|
||||
cipherService,
|
||||
@@ -88,6 +89,7 @@ export class AddEditComponent extends BaseAddEditComponent {
|
||||
cipherAuthorizationService,
|
||||
toastService,
|
||||
sdkService,
|
||||
sshImportPromptService,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
"restoreMembers": {
|
||||
"message": "Restore members"
|
||||
},
|
||||
"cannotRestoreAccessError":{
|
||||
"cannotRestoreAccessError": {
|
||||
"message": "Cannot restore organization access"
|
||||
},
|
||||
"allApplicationsWithCount": {
|
||||
@@ -1355,8 +1355,8 @@
|
||||
"yourAccountIsLocked": {
|
||||
"message": "Your account is locked"
|
||||
},
|
||||
"uuid":{
|
||||
"message" : "UUID"
|
||||
"uuid": {
|
||||
"message": "UUID"
|
||||
},
|
||||
"unlock": {
|
||||
"message": "Unlock"
|
||||
@@ -5904,10 +5904,10 @@
|
||||
"bulkFilteredMessage": {
|
||||
"message": "Excluded, not applicable for this action"
|
||||
},
|
||||
"nonCompliantMembersTitle":{
|
||||
"nonCompliantMembersTitle": {
|
||||
"message": "Non-compliant members"
|
||||
},
|
||||
"nonCompliantMembersError":{
|
||||
"nonCompliantMembersError": {
|
||||
"message": "Members that are non-compliant with the Single organization or Two-step login policy cannot be restored until they adhere to the policy requirements"
|
||||
},
|
||||
"fingerprint": {
|
||||
@@ -9330,7 +9330,7 @@
|
||||
"message": "for Bitwarden using the implementation guide for your Identity Provider.",
|
||||
"description": "This represents the end of a sentence, broken up to include links. The full sentence will be 'Configure single sign-on for Bitwarden using the implementation guide for your Identity Provider."
|
||||
},
|
||||
"userProvisioning":{
|
||||
"userProvisioning": {
|
||||
"message": "User provisioning"
|
||||
},
|
||||
"scimIntegration": {
|
||||
@@ -9344,22 +9344,22 @@
|
||||
"message": "(System for Cross-domain Identity Management) to automatically provision users and groups to Bitwarden using the implementation guide for your Identity Provider.",
|
||||
"description": "This represents the end of a sentence, broken up to include links. The full sentence will be 'Configure SCIM (System for Cross-domain Identity Management) to automatically provision users and groups to Bitwarden using the implementation guide for your Identity Provider"
|
||||
},
|
||||
"bwdc":{
|
||||
"bwdc": {
|
||||
"message": "Bitwarden Directory Connector"
|
||||
},
|
||||
"bwdcDesc": {
|
||||
"message": "Configure Bitwarden Directory Connector to automatically provision users and groups using the implementation guide for your Identity Provider."
|
||||
},
|
||||
"eventManagement":{
|
||||
"eventManagement": {
|
||||
"message": "Event management"
|
||||
},
|
||||
"eventManagementDesc":{
|
||||
"eventManagementDesc": {
|
||||
"message": "Integrate Bitwarden event logs with your SIEM (system information and event management) system by using the implementation guide for your platform."
|
||||
},
|
||||
"deviceManagement":{
|
||||
"deviceManagement": {
|
||||
"message": "Device management"
|
||||
},
|
||||
"deviceManagementDesc":{
|
||||
"deviceManagementDesc": {
|
||||
"message": "Configure device management for Bitwarden using the implementation guide for your platform."
|
||||
},
|
||||
"desktopRequired": {
|
||||
@@ -9368,7 +9368,7 @@
|
||||
"reopenLinkOnDesktop": {
|
||||
"message": "Reopen this link from your email on a desktop."
|
||||
},
|
||||
"integrationCardTooltip":{
|
||||
"integrationCardTooltip": {
|
||||
"message": "Launch $INTEGRATION$ implementation guide.",
|
||||
"placeholders": {
|
||||
"integration": {
|
||||
@@ -9377,7 +9377,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"smIntegrationTooltip":{
|
||||
"smIntegrationTooltip": {
|
||||
"message": "Set up $INTEGRATION$.",
|
||||
"placeholders": {
|
||||
"integration": {
|
||||
@@ -9386,7 +9386,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"smSdkTooltip":{
|
||||
"smSdkTooltip": {
|
||||
"message": "View $SDK$ repository",
|
||||
"placeholders": {
|
||||
"sdk": {
|
||||
@@ -9395,7 +9395,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"integrationCardAriaLabel":{
|
||||
"integrationCardAriaLabel": {
|
||||
"message": "open $INTEGRATION$ implementation guide in a new tab.",
|
||||
"placeholders": {
|
||||
"integration": {
|
||||
@@ -9404,7 +9404,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"smSdkAriaLabel":{
|
||||
"smSdkAriaLabel": {
|
||||
"message": "view $SDK$ repository in a new tab.",
|
||||
"placeholders": {
|
||||
"sdk": {
|
||||
@@ -9413,7 +9413,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"smIntegrationCardAriaLabel":{
|
||||
"smIntegrationCardAriaLabel": {
|
||||
"message": "set up $INTEGRATION$ implementation guide in a new tab.",
|
||||
"placeholders": {
|
||||
"integration": {
|
||||
@@ -9820,7 +9820,7 @@
|
||||
"message": "Config"
|
||||
},
|
||||
"learnMoreAboutEmergencyAccess": {
|
||||
"message":"Learn more about emergency access"
|
||||
"message": "Learn more about emergency access"
|
||||
},
|
||||
"learnMoreAboutMatchDetection": {
|
||||
"message": "Learn more about match detection"
|
||||
@@ -10122,7 +10122,7 @@
|
||||
"selfHostingTitleProper": {
|
||||
"message": "Self-Hosting"
|
||||
},
|
||||
"claim-domain-single-org-warning" : {
|
||||
"claim-domain-single-org-warning": {
|
||||
"message": "Claiming a domain will turn on the single organization policy."
|
||||
},
|
||||
"single-org-revoked-user-warning": {
|
||||
@@ -10363,6 +10363,36 @@
|
||||
"organizationNameMaxLength": {
|
||||
"message": "Organization name cannot exceed 50 characters."
|
||||
},
|
||||
"sshKeyWrongPassword": {
|
||||
"message": "The password you entered is incorrect."
|
||||
},
|
||||
"importSshKey": {
|
||||
"message": "Import"
|
||||
},
|
||||
"confirmSshKeyPassword": {
|
||||
"message": "Confirm password"
|
||||
},
|
||||
"enterSshKeyPasswordDesc": {
|
||||
"message": "Enter the password for the SSH key."
|
||||
},
|
||||
"enterSshKeyPassword": {
|
||||
"message": "Enter password"
|
||||
},
|
||||
"invalidSshKey": {
|
||||
"message": "The SSH key is invalid"
|
||||
},
|
||||
"sshKeyTypeUnsupported": {
|
||||
"message": "The SSH key type is not supported"
|
||||
},
|
||||
"importSshKeyFromClipboard": {
|
||||
"message": "Import key from clipboard"
|
||||
},
|
||||
"sshKeyImported": {
|
||||
"message": "SSH key imported successfully"
|
||||
},
|
||||
"copySSHPrivateKey": {
|
||||
"message": "Copy private key"
|
||||
},
|
||||
"openingExtension": {
|
||||
"message": "Opening the Bitwarden browser extension"
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user