feat(account): add deletion lifecycle
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using System.Security.Claims;
|
||||
using JobTrackerApi.Data;
|
||||
using JobTrackerApi.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace JobTrackerApi.Services;
|
||||
@@ -19,7 +20,9 @@ public static class LocalSessionValidator
|
||||
var session = await db.UserSessions.IgnoreQueryFilters()
|
||||
.FirstOrDefaultAsync(x => x.Id == sid && x.UserId == userId, cancellationToken);
|
||||
if (session is null || session.RevokedAtUtc is not null || session.ExpiresAtUtc <= now) return false;
|
||||
if (requireConfirmedEmail && !await db.Users.IgnoreQueryFilters().AnyAsync(x => x.Id == userId && x.EmailConfirmed, cancellationToken)) return false;
|
||||
var user = await db.Users.IgnoreQueryFilters().AsNoTracking().FirstOrDefaultAsync(x => x.Id == userId, cancellationToken);
|
||||
if (user is null || user.DeletionStatus != AccountDeletionStatuses.Active) return false;
|
||||
if (requireConfirmedEmail && !user.EmailConfirmed) return false;
|
||||
|
||||
if (now - session.LastSeenAtUtc > TimeSpan.FromMinutes(5))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user