1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-12 06:13:38 +00:00

[PM-22725] [Defect]Title and Username are removed when editing Identity items (#15221)

* map sdk identity type back to null when undefined

* refactored views to have consistent pattern with other fromSdk methods
This commit is contained in:
SmithThe4th
2025-06-18 10:16:25 -04:00
committed by GitHub
parent f8618bc335
commit 02a63d4a38
5 changed files with 54 additions and 14 deletions

View File

@@ -157,6 +157,15 @@ export class CardView extends ItemView {
return undefined; return undefined;
} }
return Object.assign(new CardView(), obj); const cardView = new CardView();
cardView.cardholderName = obj.cardholderName ?? null;
cardView.brand = obj.brand ?? null;
cardView.number = obj.number ?? null;
cardView.expMonth = obj.expMonth ?? null;
cardView.expYear = obj.expYear ?? null;
cardView.code = obj.code ?? null;
return cardView;
} }
} }

View File

@@ -169,6 +169,27 @@ export class IdentityView extends ItemView {
return undefined; return undefined;
} }
return Object.assign(new IdentityView(), obj); const identityView = new IdentityView();
identityView.title = obj.title ?? null;
identityView.firstName = obj.firstName ?? null;
identityView.middleName = obj.middleName ?? null;
identityView.lastName = obj.lastName ?? null;
identityView.address1 = obj.address1 ?? null;
identityView.address2 = obj.address2 ?? null;
identityView.address3 = obj.address3 ?? null;
identityView.city = obj.city ?? null;
identityView.state = obj.state ?? null;
identityView.postalCode = obj.postalCode ?? null;
identityView.country = obj.country ?? null;
identityView.company = obj.company ?? null;
identityView.email = obj.email ?? null;
identityView.phone = obj.phone ?? null;
identityView.ssn = obj.ssn ?? null;
identityView.username = obj.username ?? null;
identityView.passportNumber = obj.passportNumber ?? null;
identityView.licenseNumber = obj.licenseNumber ?? null;
return identityView;
} }
} }

View File

@@ -116,13 +116,18 @@ export class LoginView extends ItemView {
return undefined; return undefined;
} }
const passwordRevisionDate = const loginView = new LoginView();
obj.passwordRevisionDate == null ? null : new Date(obj.passwordRevisionDate);
const uris = obj.uris?.map((uri) => LoginUriView.fromSdkLoginUriView(uri)) || [];
return Object.assign(new LoginView(), obj, { loginView.username = obj.username ?? null;
passwordRevisionDate, loginView.password = obj.password ?? null;
uris, loginView.passwordRevisionDate =
}); obj.passwordRevisionDate == null ? null : new Date(obj.passwordRevisionDate);
loginView.totp = obj.totp ?? null;
loginView.autofillOnPageLoad = obj.autofillOnPageLoad ?? null;
loginView.uris = obj.uris?.map((uri) => LoginUriView.fromSdkLoginUriView(uri)) || [];
// FIDO2 credentials are not decrypted here, they remain encrypted
loginView.fido2Credentials = null;
return loginView;
} }
} }

View File

@@ -37,6 +37,9 @@ export class SecureNoteView extends ItemView {
return undefined; return undefined;
} }
return Object.assign(new SecureNoteView(), obj); const secureNoteView = new SecureNoteView();
secureNoteView.type = obj.type ?? null;
return secureNoteView;
} }
} }

View File

@@ -55,10 +55,12 @@ export class SshKeyView extends ItemView {
return undefined; return undefined;
} }
const keyFingerprint = obj.fingerprint; const sshKeyView = new SshKeyView();
return Object.assign(new SshKeyView(), obj, { sshKeyView.privateKey = obj.privateKey ?? null;
keyFingerprint, sshKeyView.publicKey = obj.publicKey ?? null;
}); sshKeyView.keyFingerprint = obj.fingerprint ?? null;
return sshKeyView;
} }
} }