mirror of
https://github.com/bitwarden/server
synced 2025-12-23 19:53:40 +00:00
* feat(pm-15015) : * Add `CountryName` column to AuthRequest Table in Database, and refreshing AuthRequestView * Modify database stored procedures and Entity Framework migrations for AuthRequest Repositories * Add property to `ICurrentContext` and response models.
51 lines
1.6 KiB
C#
51 lines
1.6 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Bit.Core.Entities;
|
|
using Bit.Core.Enums;
|
|
using Bit.Core.Utilities;
|
|
|
|
namespace Bit.Core.Auth.Entities;
|
|
|
|
public class AuthRequest : ITableObject<Guid>
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid UserId { get; set; }
|
|
public Guid? OrganizationId { get; set; }
|
|
public Enums.AuthRequestType Type { get; set; }
|
|
[MaxLength(50)]
|
|
public string RequestDeviceIdentifier { get; set; }
|
|
public DeviceType RequestDeviceType { get; set; }
|
|
[MaxLength(50)]
|
|
public string RequestIpAddress { get; set; }
|
|
/// <summary>
|
|
/// This country name is populated through a header value fetched from the ISO-3166 country code.
|
|
/// It will always be the English short form of the country name. The length should never be over 200 characters.
|
|
/// </summary>
|
|
[MaxLength(200)]
|
|
public string RequestCountryName { get; set; }
|
|
public Guid? ResponseDeviceId { get; set; }
|
|
[MaxLength(25)]
|
|
public string AccessCode { get; set; }
|
|
public string PublicKey { get; set; }
|
|
public string Key { get; set; }
|
|
public string MasterPasswordHash { get; set; }
|
|
public bool? Approved { get; set; }
|
|
public DateTime CreationDate { get; set; } = DateTime.UtcNow;
|
|
public DateTime? ResponseDate { get; set; }
|
|
public DateTime? AuthenticationDate { get; set; }
|
|
|
|
public void SetNewId()
|
|
{
|
|
Id = CoreHelpers.GenerateComb();
|
|
}
|
|
|
|
public bool IsSpent()
|
|
{
|
|
return ResponseDate.HasValue || AuthenticationDate.HasValue || GetExpirationDate() < DateTime.UtcNow;
|
|
}
|
|
|
|
public DateTime GetExpirationDate()
|
|
{
|
|
return CreationDate.AddMinutes(15);
|
|
}
|
|
}
|