mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-12 16:22:55 -07:00
Started implimenting the Email Token functionality so we can send the user when creating a email with a token they can click on to set their username and password.
This commit is contained in:
parent
ffab4b7981
commit
acd9ebde33
26 changed files with 298 additions and 90 deletions
|
@ -28,5 +28,6 @@ namespace Ombi.Store.Context
|
|||
DbSet<ChildRequests> ChildRequests { get; set; }
|
||||
DbSet<MovieIssues> MovieIssues { get; set; }
|
||||
DbSet<TvIssues> TvIssues { get; set; }
|
||||
DbSet<EmailTokens> EmailTokens { get; set; }
|
||||
}
|
||||
}
|
|
@ -32,6 +32,7 @@ namespace Ombi.Store.Context
|
|||
public DbSet<ChildRequests> ChildRequests { get; set; }
|
||||
public DbSet<MovieIssues> MovieIssues { get; set; }
|
||||
public DbSet<TvIssues> TvIssues { get; set; }
|
||||
public DbSet<EmailTokens> EmailTokens { get; set; }
|
||||
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
|
|
18
src/Ombi.Store/Entities/EmailTokens.cs
Normal file
18
src/Ombi.Store/Entities/EmailTokens.cs
Normal file
|
@ -0,0 +1,18 @@
|
|||
using System;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Ombi.Store.Entities
|
||||
{
|
||||
[Table("EmailTokens")]
|
||||
public class EmailTokens : Entity
|
||||
{
|
||||
public Guid Token { get; set; }
|
||||
public int UserId { get; set; }
|
||||
public DateTime ValidUntil { get; set; }
|
||||
public bool Used { get; set; }
|
||||
public DateTime DateUsed { get; set; }
|
||||
|
||||
[ForeignKey(nameof(UserId))]
|
||||
public User User { get; set; }
|
||||
}
|
||||
}
|
12
src/Ombi.Store/Repository/ITokenRepository.cs
Normal file
12
src/Ombi.Store/Repository/ITokenRepository.cs
Normal file
|
@ -0,0 +1,12 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Ombi.Store.Entities;
|
||||
|
||||
namespace Ombi.Store.Repository
|
||||
{
|
||||
public interface ITokenRepository
|
||||
{
|
||||
Task CreateToken(EmailTokens token);
|
||||
Task<EmailTokens> GetToken(Guid tokenId);
|
||||
}
|
||||
}
|
30
src/Ombi.Store/Repository/TokenRepository.cs
Normal file
30
src/Ombi.Store/Repository/TokenRepository.cs
Normal file
|
@ -0,0 +1,30 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Ombi.Store.Context;
|
||||
using Ombi.Store.Entities;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Ombi.Store.Repository
|
||||
{
|
||||
public class TokenRepository : ITokenRepository
|
||||
{
|
||||
public TokenRepository(IOmbiContext db)
|
||||
{
|
||||
Db = db;
|
||||
}
|
||||
|
||||
private IOmbiContext Db { get; }
|
||||
|
||||
public async Task CreateToken(EmailTokens token)
|
||||
{
|
||||
token.Token = Guid.NewGuid();
|
||||
await Db.EmailTokens.AddAsync(token);
|
||||
await Db.SaveChangesAsync();
|
||||
}
|
||||
|
||||
public async Task<EmailTokens> GetToken(Guid tokenId)
|
||||
{
|
||||
return await Db.EmailTokens.FirstOrDefaultAsync(x => x.Token == tokenId);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue