using Bit.Core.Enums; using Bit.Core.Models.Domain; namespace Bit.Core.Models.View { public class LoginView : ItemView { public LoginView() { } public LoginView(Login l) { PasswordRevisionDate = l.PasswordRevisionDate; } public string Username { get; set; } public string Password { get; set; } public DateTime? PasswordRevisionDate { get; set; } public string Totp { get; set; } public List Uris { get; set; } public List Fido2Credentials { get; set; } public string Uri => HasUris ? Uris[0].Uri : null; public string MaskedPassword => Password != null ? "••••••••" : null; public override string SubTitle => Username; public bool CanLaunch => HasUris && Uris.Any(u => u.CanLaunch); public string LaunchUri => HasUris ? Uris.FirstOrDefault(u => u.CanLaunch)?.LaunchUri : null; public bool HasUris => (Uris?.Count ?? 0) > 0; public bool HasFido2Credentials => Fido2Credentials?.Any() == true; public Fido2CredentialView MainFido2Credential => HasFido2Credentials ? Fido2Credentials[0] : null; public override List> LinkedFieldOptions { get => new List>() { new KeyValuePair("Username", LinkedIdType.Login_Username), new KeyValuePair("Password", LinkedIdType.Login_Password), }; } } }