From 900bb5e845c3ad44defbd427cae3d44a4a43321f Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Sat, 25 Feb 2023 13:15:44 +0100 Subject: feat: Initial commit --- code/api/src/Models/Database/Internal/User.cs | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 code/api/src/Models/Database/Internal/User.cs (limited to 'code/api/src/Models/Database/Internal/User.cs') diff --git a/code/api/src/Models/Database/Internal/User.cs b/code/api/src/Models/Database/Internal/User.cs new file mode 100644 index 0000000..f4d08ff --- /dev/null +++ b/code/api/src/Models/Database/Internal/User.cs @@ -0,0 +1,44 @@ +namespace IOL.GreatOffice.Api.Data.Database; + +public class User : Base +{ + public User() { } + + public User(string username) { + Username = username; + } + + public string FirstName { get; set; } + public string LastName { get; set; } + public string Email { get; set; } + public string Username { get; set; } + public string Password { get; set; } + public DateTime EmailLastValidated { get; set; } + public ICollection Tenants { get; set; } + public Guid? DeletedBy { get; set; } + + public string DisplayName(bool isForGreeting = false) { + if (!isForGreeting && FirstName.HasValue() && LastName.HasValue()) return FirstName + " " + LastName; + return FirstName.HasValue() ? FirstName : Username ?? Email; + } + + public void HashAndSetPassword(string password) { + Password = PasswordHelper.HashPassword(password); + } + + public bool VerifyPassword(string password) { + return PasswordHelper.Verify(password, Password); + } + + public void SetDeleted(Guid userId) { + base.SetDeleted(); + DeletedBy = userId; + } + + public IEnumerable DefaultClaims() { + return new Claim[] { + new(AppClaims.USER_ID, Id.ToString()), + new(AppClaims.NAME, Username), + }; + } +} \ No newline at end of file -- cgit v1.3