Started reworking the usermanagement page #1456 #865

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:
tidusjar 2017-07-07 23:49:29 +01:00
parent ffab4b7981
commit acd9ebde33
26 changed files with 298 additions and 90 deletions

View file

@ -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; }
}
}

View file

@ -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)

View 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; }
}
}

View 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);
}
}

View 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);
}
}
}