Files
server/src/Api/Models/Request/EmergencyAccessRequstModels.cs

50 lines
1.5 KiB
C#
Raw Normal View History

using System.ComponentModel.DataAnnotations;
2021-12-14 15:05:07 +00:00
using Bit.Core.Enums;
using Bit.Core.Models.Table;
2021-12-14 15:05:07 +00:00
using Bit.Core.Utilities;
2021-12-14 15:05:07 +00:00
namespace Bit.Api.Models.Request
{
public class EmergencyAccessInviteRequestModel
{
[Required]
[StrictEmailAddress]
[StringLength(256)]
public string Email { get; set; }
[Required]
2021-12-14 15:05:07 +00:00
public EmergencyAccessType? Type { get; set; }
[Required]
public int WaitTimeDays { get; set; }
}
public class EmergencyAccessUpdateRequestModel
{
[Required]
2021-12-14 15:05:07 +00:00
public EmergencyAccessType Type { get; set; }
[Required]
public int WaitTimeDays { get; set; }
public string KeyEncrypted { get; set; }
public EmergencyAccess ToEmergencyAccess(EmergencyAccess existingEmergencyAccess)
{
// Ensure we only set keys for a confirmed emergency access.
if (!string.IsNullOrWhiteSpace(existingEmergencyAccess.KeyEncrypted) && !string.IsNullOrWhiteSpace(KeyEncrypted))
{
existingEmergencyAccess.KeyEncrypted = KeyEncrypted;
}
existingEmergencyAccess.Type = Type;
existingEmergencyAccess.WaitTimeDays = WaitTimeDays;
return existingEmergencyAccess;
}
}
public class EmergencyAccessPasswordRequestModel
{
[Required]
[StringLength(300)]
public string NewMasterPasswordHash { get; set; }
[Required]
public string Key { get; set; }
}
}