mirror of
https://github.com/bitwarden/server
synced 2026-02-14 07:23:26 +00:00
* feat: Add initial DeleteEmergencyContactCommand * chore: remove nullable enable and add comments * test: add tests for new delete command * test: update tests to test IMailer was called. * feat: add delete by GranteeId and allow for multiple grantors to be contacted. * feat: add DeleteMany stored procedure for EmergencyAccess * test: add database tests for new SP * feat: commands use DeleteManyById for emergencyAccessDeletes * claude: send one email per grantor instead of a bulk email to all grantors. Modified tests to validate. * feat: change revision dates for confirmed grantees; * feat: add AccountRevisionDate bump for grantee users in the confirmed status * test: update integration test to validate only confirmed users are updated as well as proper deletion of emergency access
48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Bit.Core.Auth.Enums;
|
|
using Bit.Core.Entities;
|
|
using Bit.Core.Utilities;
|
|
|
|
namespace Bit.Core.Auth.Entities;
|
|
|
|
public class EmergencyAccess : ITableObject<Guid>
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid GrantorId { get; set; }
|
|
public Guid? GranteeId { get; set; }
|
|
[MaxLength(256)]
|
|
public string? Email { get; set; }
|
|
public string? KeyEncrypted { get; set; }
|
|
public EmergencyAccessType Type { get; set; }
|
|
public EmergencyAccessStatusType Status { get; set; }
|
|
public short WaitTimeDays { get; set; }
|
|
public DateTime? RecoveryInitiatedDate { get; set; }
|
|
public DateTime? LastNotificationDate { get; set; }
|
|
public DateTime CreationDate { get; set; } = DateTime.UtcNow;
|
|
public DateTime RevisionDate { get; set; } = DateTime.UtcNow;
|
|
|
|
public void SetNewId()
|
|
{
|
|
Id = CoreHelpers.GenerateComb();
|
|
}
|
|
|
|
public EmergencyAccess ToEmergencyAccess()
|
|
{
|
|
return new EmergencyAccess
|
|
{
|
|
Id = Id,
|
|
GrantorId = GrantorId,
|
|
GranteeId = GranteeId,
|
|
Email = Email,
|
|
KeyEncrypted = KeyEncrypted,
|
|
Type = Type,
|
|
Status = Status,
|
|
WaitTimeDays = WaitTimeDays,
|
|
RecoveryInitiatedDate = RecoveryInitiatedDate,
|
|
LastNotificationDate = LastNotificationDate,
|
|
CreationDate = CreationDate,
|
|
RevisionDate = RevisionDate,
|
|
};
|
|
}
|
|
}
|