From 8da37c77cae0c7f712a775e3996afd9d84b0f9af Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Fri, 9 Dec 2022 13:38:25 +0900 Subject: feat: !WIP implement email validation --- code/api/src/Models/Database/Internal/User.cs | 1 + code/api/src/Models/Database/MainAppDatabase.cs | 3 +++ code/api/src/Models/Database/Queues/ValidationEmail.cs | 8 ++++++++ code/api/src/Models/Misc/AppConfiguration.cs | 5 +++++ 4 files changed, 17 insertions(+) create mode 100644 code/api/src/Models/Database/Queues/ValidationEmail.cs (limited to 'code/api/src/Models') diff --git a/code/api/src/Models/Database/Internal/User.cs b/code/api/src/Models/Database/Internal/User.cs index 9db5d35..b046974 100644 --- a/code/api/src/Models/Database/Internal/User.cs +++ b/code/api/src/Models/Database/Internal/User.cs @@ -13,6 +13,7 @@ public class User : Base 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 string DisplayName() { diff --git a/code/api/src/Models/Database/MainAppDatabase.cs b/code/api/src/Models/Database/MainAppDatabase.cs index eaf7781..33e5dcd 100644 --- a/code/api/src/Models/Database/MainAppDatabase.cs +++ b/code/api/src/Models/Database/MainAppDatabase.cs @@ -1,3 +1,4 @@ +using IOL.GreatOffice.Api.Data.Database.Queues; using Microsoft.AspNetCore.DataProtection.EntityFrameworkCore; namespace IOL.GreatOffice.Api.Data.Database; @@ -21,6 +22,7 @@ public class MainAppDatabase : DbContext, IDataProtectionKeyContext public DbSet TodoProjects { get; set; } public DbSet TodoComments { get; set; } public DbSet Todos { get; set; } + public DbSet ValidationEmails { get; set; } protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity(e => { @@ -99,6 +101,7 @@ public class MainAppDatabase : DbContext, IDataProtectionKeyContext e.HasOne(n => n.Collection); e.ToTable("todo_collection_access_controls"); }); + modelBuilder.Entity(e => { e.ToTable("validation_emails"); }); base.OnModelCreating(modelBuilder); } diff --git a/code/api/src/Models/Database/Queues/ValidationEmail.cs b/code/api/src/Models/Database/Queues/ValidationEmail.cs new file mode 100644 index 0000000..8ca8c5d --- /dev/null +++ b/code/api/src/Models/Database/Queues/ValidationEmail.cs @@ -0,0 +1,8 @@ +namespace IOL.GreatOffice.Api.Data.Database.Queues; + +public class ValidationEmail +{ + public Guid Id { get; set; } + public DateTime EmailSentAt { get; set; } + public Guid UserId { get; set; } +} \ No newline at end of file diff --git a/code/api/src/Models/Misc/AppConfiguration.cs b/code/api/src/Models/Misc/AppConfiguration.cs index 2a9afc2..31e5726 100644 --- a/code/api/src/Models/Misc/AppConfiguration.cs +++ b/code/api/src/Models/Misc/AppConfiguration.cs @@ -79,6 +79,11 @@ public class AppConfiguration /// public string CANONICAL_FRONTEND_URL { get; set; } + /// + /// The absolute url to the backend api + /// + public string CANONICAL_BACKEND_URL { get; set; } + /// /// A random string used to encrypt/decrypt for general purposes /// -- cgit v1.3