Skip to content

Commit 1ba460c

Browse files
authored
[PM-23641] Credential Exchange - CredentialScope (#352)
Improves the `CredentialScope` import logic. - Now handles `android_apps` appropriately. - Supports mapping to `Fields` when importing a non Login credential.
1 parent f1fc29b commit 1ba460c

File tree

5 files changed

+324
-27
lines changed

5 files changed

+324
-27
lines changed

crates/bitwarden-exporters/src/cxf/import.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ use credential_exchange_format::{
55
};
66

77
use crate::{
8-
cxf::{login::to_login, CxfError},
8+
cxf::{
9+
login::{to_fields, to_login},
10+
CxfError,
11+
},
912
CipherType, ImportingCipher,
1013
};
1114

@@ -33,12 +36,14 @@ fn parse_item(value: Item) -> Vec<ImportingCipher> {
3336

3437
let mut output = vec![];
3538

39+
let scope = value.scope.as_ref();
40+
3641
// Login credentials
3742
if !grouped.basic_auth.is_empty() || !grouped.passkey.is_empty() {
3843
let basic_auth = grouped.basic_auth.first();
3944
let passkey = grouped.passkey.first();
4045

41-
let login = to_login(creation_date, basic_auth, passkey, value.scope);
46+
let login = to_login(creation_date, basic_auth, passkey, scope);
4247

4348
output.push(ImportingCipher {
4449
folder_id: None, // TODO: Handle folders
@@ -67,7 +72,7 @@ fn parse_item(value: Item) -> Vec<ImportingCipher> {
6772
r#type: CipherType::Card(Box::new(credit_card.into())),
6873
favorite: false,
6974
reprompt: 0,
70-
fields: vec![],
75+
fields: scope.map(to_fields).unwrap_or_default(),
7176
revision_date,
7277
creation_date,
7378
deleted_date: None,

0 commit comments

Comments
 (0)