From 67cde54e378ed87d5e781b4e2e475680b0ef6b69 Mon Sep 17 00:00:00 2001
From: Natalia Portillo
Date: Fri, 3 May 2024 22:54:50 +0100
Subject: [PATCH] Use proper database context in new server.
---
.../Aaru.Server.Database.csproj | 3 +-
Aaru.Server.New/Aaru.Server.New.csproj | 7 +-
...omponentsEndpointRouteBuilderExtensions.cs | 15 +-
.../Account/IdentityNoOpEmailSender.cs | 9 +-
...RevalidatingAuthenticationStateProvider.cs | 8 +-
.../Account/IdentityUserAccessor.cs | 7 +-
.../Account/Pages/ConfirmEmail.razor | 7 +-
.../Account/Pages/ConfirmEmailChange.razor | 9 +-
.../Account/Pages/ExternalLogin.razor | 29 ++-
.../Account/Pages/ForgotPassword.razor | 11 +-
.../Components/Account/Pages/Login.razor | 9 +-
.../Account/Pages/LoginWith2fa.razor | 13 +-
.../Account/Pages/LoginWithRecoveryCode.razor | 9 +-
.../Account/Pages/Manage/ChangePassword.razor | 17 +-
.../Pages/Manage/DeletePersonalData.razor | 17 +-
.../Account/Pages/Manage/Disable2fa.razor | 11 +-
.../Account/Pages/Manage/Email.razor | 17 +-
.../Pages/Manage/EnableAuthenticator.razor | 7 +-
.../Account/Pages/Manage/ExternalLogins.razor | 15 +-
.../Pages/Manage/GenerateRecoveryCodes.razor | 5 +-
.../Account/Pages/Manage/Index.razor | 15 +-
.../Pages/Manage/ResetAuthenticator.razor | 13 +-
.../Account/Pages/Manage/SetPassword.razor | 13 +-
.../Manage/TwoFactorAuthentication.razor | 11 +-
.../Components/Account/Pages/Register.razor | 29 ++-
.../Account/Pages/RegisterConfirmation.razor | 11 +-
.../Pages/ResendEmailConfirmation.razor | 11 +-
.../Account/Pages/ResetPassword.razor | 7 +-
.../Account/Shared/ExternalLoginPicker.razor | 7 +-
.../Account/Shared/ManageNavMenu.razor | 5 +-
Aaru.Server.New/Data/ApplicationDbContext.cs | 7 -
Aaru.Server.New/Data/ApplicationUser.cs | 6 -
...000000000_CreateIdentitySchema.Designer.cs | 226 ------------------
.../00000000000000_CreateIdentitySchema.cs | 212 ----------------
.../ApplicationDbContextModelSnapshot.cs | 223 -----------------
Aaru.Server.New/Data/app.db | Bin 102400 -> 0 bytes
Aaru.Server.New/Program.cs | 17 +-
Aaru.Server.New/appsettings.Development.json | 5 +-
38 files changed, 174 insertions(+), 869 deletions(-)
delete mode 100644 Aaru.Server.New/Data/ApplicationDbContext.cs
delete mode 100644 Aaru.Server.New/Data/ApplicationUser.cs
delete mode 100644 Aaru.Server.New/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs
delete mode 100644 Aaru.Server.New/Data/Migrations/00000000000000_CreateIdentitySchema.cs
delete mode 100644 Aaru.Server.New/Data/Migrations/ApplicationDbContextModelSnapshot.cs
delete mode 100644 Aaru.Server.New/Data/app.db
diff --git a/Aaru.Server.Database/Aaru.Server.Database.csproj b/Aaru.Server.Database/Aaru.Server.Database.csproj
index d5ad541c..c68ca2b5 100644
--- a/Aaru.Server.Database/Aaru.Server.Database.csproj
+++ b/Aaru.Server.Database/Aaru.Server.Database.csproj
@@ -11,8 +11,7 @@
-
-
+
diff --git a/Aaru.Server.New/Aaru.Server.New.csproj b/Aaru.Server.New/Aaru.Server.New.csproj
index 576dec30..9ce7942d 100644
--- a/Aaru.Server.New/Aaru.Server.New.csproj
+++ b/Aaru.Server.New/Aaru.Server.New.csproj
@@ -7,10 +7,6 @@
aspnet-Aaru.Server.New-79282495-4F67-4766-871D-448D1338E8BC
-
-
-
-
@@ -18,6 +14,9 @@
+
+
+
diff --git a/Aaru.Server.New/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs b/Aaru.Server.New/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs
index 5f908740..f06ae7b0 100644
--- a/Aaru.Server.New/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs
+++ b/Aaru.Server.New/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs
@@ -3,7 +3,6 @@ using System.Security.Claims;
using System.Text.Json;
using Aaru.Server.New.Components.Account.Pages;
using Aaru.Server.New.Components.Account.Pages.Manage;
-using Aaru.Server.New.Data;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Http.Extensions;
@@ -23,8 +22,8 @@ static class IdentityComponentsEndpointRouteBuilderExtensions
RouteGroupBuilder accountGroup = endpoints.MapGroup("/Account");
accountGroup.MapPost("/PerformExternalLogin",
- (HttpContext context, [FromServices] SignInManager signInManager,
- [FromForm] string provider, [FromForm] string returnUrl) =>
+ (HttpContext context, [FromServices] SignInManager signInManager,
+ [FromForm] string provider, [FromForm] string returnUrl) =>
{
IEnumerable> query =
[
@@ -44,7 +43,7 @@ static class IdentityComponentsEndpointRouteBuilderExtensions
});
accountGroup.MapPost("/Logout",
- async (ClaimsPrincipal user, SignInManager signInManager,
+ async (ClaimsPrincipal user, SignInManager signInManager,
[FromForm] string returnUrl) =>
{
await signInManager.SignOutAsync();
@@ -55,7 +54,7 @@ static class IdentityComponentsEndpointRouteBuilderExtensions
RouteGroupBuilder manageGroup = accountGroup.MapGroup("/Manage").RequireAuthorization();
manageGroup.MapPost("/LinkExternalLogin",
- async (HttpContext context, [FromServices] SignInManager signInManager,
+ async (HttpContext context, [FromServices] SignInManager signInManager,
[FromForm] string provider) =>
{
// Clear the existing external cookie to ensure a clean login process
@@ -79,10 +78,10 @@ static class IdentityComponentsEndpointRouteBuilderExtensions
ILogger downloadLogger = loggerFactory.CreateLogger("DownloadPersonalData");
manageGroup.MapPost("/DownloadPersonalData",
- async (HttpContext context, [FromServices] UserManager userManager,
+ async (HttpContext context, [FromServices] UserManager userManager,
[FromServices] AuthenticationStateProvider authenticationStateProvider) =>
{
- ApplicationUser? user = await userManager.GetUserAsync(context.User);
+ IdentityUser? user = await userManager.GetUserAsync(context.User);
if(user is null)
{
@@ -99,7 +98,7 @@ static class IdentityComponentsEndpointRouteBuilderExtensions
// Only include personal data for download
var personalData = new Dictionary();
- IEnumerable personalDataProps = typeof(ApplicationUser).GetProperties()
+ IEnumerable personalDataProps = typeof(IdentityUser).GetProperties()
.Where(prop => Attribute.IsDefined(prop, typeof(PersonalDataAttribute)));
foreach(PropertyInfo p in personalDataProps)
diff --git a/Aaru.Server.New/Components/Account/IdentityNoOpEmailSender.cs b/Aaru.Server.New/Components/Account/IdentityNoOpEmailSender.cs
index 3d06f70d..5fa6f07f 100644
--- a/Aaru.Server.New/Components/Account/IdentityNoOpEmailSender.cs
+++ b/Aaru.Server.New/Components/Account/IdentityNoOpEmailSender.cs
@@ -1,25 +1,24 @@
-using Aaru.Server.New.Data;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Identity.UI.Services;
namespace Aaru.Server.New.Components.Account;
// Remove the "else if (EmailSender is IdentityNoOpEmailSender)" block from RegisterConfirmation.razor after updating with a real implementation.
-sealed class IdentityNoOpEmailSender : IEmailSender
+sealed class IdentityNoOpEmailSender : IEmailSender
{
readonly IEmailSender emailSender = new NoOpEmailSender();
- public Task SendConfirmationLinkAsync(ApplicationUser user, string email, string confirmationLink) =>
+ public Task SendConfirmationLinkAsync(IdentityUser user, string email, string confirmationLink) =>
emailSender.SendEmailAsync(email,
"Confirm your email",
$"Please confirm your account by clicking here.");
- public Task SendPasswordResetLinkAsync(ApplicationUser user, string email, string resetLink) =>
+ public Task SendPasswordResetLinkAsync(IdentityUser user, string email, string resetLink) =>
emailSender.SendEmailAsync(email,
"Reset your password",
$"Please reset your password by clicking here.");
- public Task SendPasswordResetCodeAsync(ApplicationUser user, string email, string resetCode) =>
+ public Task SendPasswordResetCodeAsync(IdentityUser user, string email, string resetCode) =>
emailSender.SendEmailAsync(email,
"Reset your password",
$"Please reset your password using the following code: {resetCode}");
diff --git a/Aaru.Server.New/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs b/Aaru.Server.New/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs
index e0665172..b91f418c 100644
--- a/Aaru.Server.New/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs
+++ b/Aaru.Server.New/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs
@@ -1,5 +1,4 @@
using System.Security.Claims;
-using Aaru.Server.New.Data;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Components.Server;
using Microsoft.AspNetCore.Identity;
@@ -21,15 +20,14 @@ sealed class IdentityRevalidatingAuthenticationStateProvider
// Get the user manager from a new scope to ensure it fetches fresh data
await using AsyncServiceScope scope = scopeFactory.CreateAsyncScope();
- UserManager userManager =
- scope.ServiceProvider.GetRequiredService>();
+ UserManager userManager = scope.ServiceProvider.GetRequiredService>();
return await ValidateSecurityStampAsync(userManager, authenticationState.User);
}
- async Task ValidateSecurityStampAsync(UserManager userManager, ClaimsPrincipal principal)
+ async Task ValidateSecurityStampAsync(UserManager userManager, ClaimsPrincipal principal)
{
- ApplicationUser? user = await userManager.GetUserAsync(principal);
+ IdentityUser? user = await userManager.GetUserAsync(principal);
if(user is null) return false;
diff --git a/Aaru.Server.New/Components/Account/IdentityUserAccessor.cs b/Aaru.Server.New/Components/Account/IdentityUserAccessor.cs
index 51fd12c5..1ac73875 100644
--- a/Aaru.Server.New/Components/Account/IdentityUserAccessor.cs
+++ b/Aaru.Server.New/Components/Account/IdentityUserAccessor.cs
@@ -1,13 +1,12 @@
-using Aaru.Server.New.Data;
using Microsoft.AspNetCore.Identity;
namespace Aaru.Server.New.Components.Account;
-sealed class IdentityUserAccessor(UserManager userManager, IdentityRedirectManager redirectManager)
+sealed class IdentityUserAccessor(UserManager userManager, IdentityRedirectManager redirectManager)
{
- public async Task GetRequiredUserAsync(HttpContext context)
+ public async Task GetRequiredUserAsync(HttpContext context)
{
- ApplicationUser? user = await userManager.GetUserAsync(context.User);
+ IdentityUser? user = await userManager.GetUserAsync(context.User);
if(user is null)
{
diff --git a/Aaru.Server.New/Components/Account/Pages/ConfirmEmail.razor b/Aaru.Server.New/Components/Account/Pages/ConfirmEmail.razor
index 31cc5ae1..07d4eb9c 100644
--- a/Aaru.Server.New/Components/Account/Pages/ConfirmEmail.razor
+++ b/Aaru.Server.New/Components/Account/Pages/ConfirmEmail.razor
@@ -1,11 +1,10 @@
@page "/Account/ConfirmEmail"
@using System.Text
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject UserManager UserManager
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject IdentityRedirectManager RedirectManager
Confirm email
@@ -31,7 +30,7 @@
RedirectManager.RedirectTo("");
}
- ApplicationUser? user = await UserManager.FindByIdAsync(UserId);
+ IdentityUser? user = await UserManager.FindByIdAsync(UserId);
if(user is null)
{
diff --git a/Aaru.Server.New/Components/Account/Pages/ConfirmEmailChange.razor b/Aaru.Server.New/Components/Account/Pages/ConfirmEmailChange.razor
index 9a44919d..59b3b1fc 100644
--- a/Aaru.Server.New/Components/Account/Pages/ConfirmEmailChange.razor
+++ b/Aaru.Server.New/Components/Account/Pages/ConfirmEmailChange.razor
@@ -1,12 +1,11 @@
@page "/Account/ConfirmEmailChange"
@using System.Text
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject UserManager UserManager
-@inject SignInManager SignInManager
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject IdentityRedirectManager RedirectManager
Confirm email change
@@ -36,7 +35,7 @@
RedirectManager.RedirectToWithStatus("Account/Login", "Error: Invalid email change confirmation link.", HttpContext);
}
- ApplicationUser? user = await UserManager.FindByIdAsync(UserId);
+ IdentityUser? user = await UserManager.FindByIdAsync(UserId);
if(user is null)
{
diff --git a/Aaru.Server.New/Components/Account/Pages/ExternalLogin.razor b/Aaru.Server.New/Components/Account/Pages/ExternalLogin.razor
index 2d0813a3..0e8bcc36 100644
--- a/Aaru.Server.New/Components/Account/Pages/ExternalLogin.razor
+++ b/Aaru.Server.New/Components/Account/Pages/ExternalLogin.razor
@@ -3,17 +3,16 @@
@using System.Security.Claims
@using System.Text
@using System.Text.Encodings.Web
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject SignInManager SignInManager
-@inject UserManager UserManager
-@inject IUserStore UserStore
-@inject IEmailSender EmailSender
-@inject NavigationManager NavigationManager
-@inject IdentityRedirectManager RedirectManager
-@inject ILogger Logger
+@inject SignInManager SignInManager
+@inject UserManager UserManager
+@inject IUserStore UserStore
+@inject IEmailSender EmailSender
+@inject NavigationManager NavigationManager
+@inject IdentityRedirectManager RedirectManager
+@inject ILogger Logger
Register
@@ -121,8 +120,8 @@
private async Task OnValidSubmitAsync()
{
- IUserEmailStore emailStore = GetEmailStore();
- ApplicationUser user = CreateUser();
+ IUserEmailStore emailStore = GetEmailStore();
+ IdentityUser user = CreateUser();
await UserStore.SetUserNameAsync(user, Input.Email, CancellationToken.None);
await emailStore.SetEmailAsync(user, Input.Email, CancellationToken.None);
@@ -168,26 +167,26 @@
message = $"Error: {string.Join(",", result.Errors.Select(error => error.Description))}";
}
- private ApplicationUser CreateUser()
+ private IdentityUser CreateUser()
{
try
{
- return Activator.CreateInstance();
+ return Activator.CreateInstance();
}
catch
{
- throw new InvalidOperationException($"Can't create an instance of '{nameof(ApplicationUser)}'. " + $"Ensure that '{nameof(ApplicationUser)}' is not an abstract class and has a parameterless constructor");
+ throw new InvalidOperationException($"Can't create an instance of '{nameof(IdentityUser)}'. " + $"Ensure that '{nameof(IdentityUser)}' is not an abstract class and has a parameterless constructor");
}
}
- private IUserEmailStore GetEmailStore()
+ private IUserEmailStore GetEmailStore()
{
if(!UserManager.SupportsUserEmail)
{
throw new NotSupportedException("The default UI requires a user store with email support.");
}
- return (IUserEmailStore)UserStore;
+ return (IUserEmailStore)UserStore;
}
private sealed class InputModel
diff --git a/Aaru.Server.New/Components/Account/Pages/ForgotPassword.razor b/Aaru.Server.New/Components/Account/Pages/ForgotPassword.razor
index e8d8afe8..7fae458d 100644
--- a/Aaru.Server.New/Components/Account/Pages/ForgotPassword.razor
+++ b/Aaru.Server.New/Components/Account/Pages/ForgotPassword.razor
@@ -2,14 +2,13 @@
@using System.ComponentModel.DataAnnotations
@using System.Text
@using System.Text.Encodings.Web
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject UserManager UserManager
-@inject IEmailSender EmailSender
-@inject NavigationManager NavigationManager
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject IEmailSender EmailSender
+@inject NavigationManager NavigationManager
+@inject IdentityRedirectManager RedirectManager
Forgot your password?
@@ -38,7 +37,7 @@
private async Task OnValidSubmitAsync()
{
- ApplicationUser? user = await UserManager.FindByEmailAsync(Input.Email);
+ IdentityUser? user = await UserManager.FindByEmailAsync(Input.Email);
if(user is null || !await UserManager.IsEmailConfirmedAsync(user))
{
diff --git a/Aaru.Server.New/Components/Account/Pages/Login.razor b/Aaru.Server.New/Components/Account/Pages/Login.razor
index 2b112692..698070ac 100644
--- a/Aaru.Server.New/Components/Account/Pages/Login.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Login.razor
@@ -1,13 +1,12 @@
@page "/Account/Login"
@using System.ComponentModel.DataAnnotations
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Authentication
@using Microsoft.AspNetCore.Identity
-@inject SignInManager SignInManager
-@inject ILogger Logger
-@inject NavigationManager NavigationManager
-@inject IdentityRedirectManager RedirectManager
+@inject SignInManager SignInManager
+@inject ILogger Logger
+@inject NavigationManager NavigationManager
+@inject IdentityRedirectManager RedirectManager
Log in
diff --git a/Aaru.Server.New/Components/Account/Pages/LoginWith2fa.razor b/Aaru.Server.New/Components/Account/Pages/LoginWith2fa.razor
index 782ddc58..9d3a6195 100644
--- a/Aaru.Server.New/Components/Account/Pages/LoginWith2fa.razor
+++ b/Aaru.Server.New/Components/Account/Pages/LoginWith2fa.razor
@@ -1,12 +1,11 @@
@page "/Account/LoginWith2fa"
@using System.ComponentModel.DataAnnotations
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject SignInManager SignInManager
-@inject UserManager UserManager
-@inject IdentityRedirectManager RedirectManager
-@inject ILogger Logger
+@inject SignInManager SignInManager
+@inject UserManager UserManager
+@inject IdentityRedirectManager RedirectManager
+@inject ILogger Logger
Two-factor authentication
@@ -44,8 +43,8 @@
@code {
- private string? message;
- private ApplicationUser user = default!;
+ private string? message;
+ private IdentityUser user = default!;
[SupplyParameterFromForm]
private InputModel Input { get; set; } = new();
diff --git a/Aaru.Server.New/Components/Account/Pages/LoginWithRecoveryCode.razor b/Aaru.Server.New/Components/Account/Pages/LoginWithRecoveryCode.razor
index 6081e7bf..a726381f 100644
--- a/Aaru.Server.New/Components/Account/Pages/LoginWithRecoveryCode.razor
+++ b/Aaru.Server.New/Components/Account/Pages/LoginWithRecoveryCode.razor
@@ -1,10 +1,9 @@
@page "/Account/LoginWithRecoveryCode"
@using System.ComponentModel.DataAnnotations
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject SignInManager SignInManager
-@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject UserManager UserManager
@inject IdentityRedirectManager RedirectManager
@inject ILogger Logger
@@ -33,8 +32,8 @@
@code {
- private string? message;
- private ApplicationUser user = default!;
+ private string? message;
+ private IdentityUser user = default!;
[SupplyParameterFromForm]
private InputModel Input { get; set; } = new();
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/ChangePassword.razor b/Aaru.Server.New/Components/Account/Pages/Manage/ChangePassword.razor
index 1dd32433..8efc0528 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/ChangePassword.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/ChangePassword.razor
@@ -1,13 +1,12 @@
@page "/Account/Manage/ChangePassword"
@using System.ComponentModel.DataAnnotations
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
-@inject SignInManager SignInManager
-@inject IdentityUserAccessor UserAccessor
-@inject IdentityRedirectManager RedirectManager
-@inject ILogger Logger
+@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject IdentityUserAccessor UserAccessor
+@inject IdentityRedirectManager RedirectManager
+@inject ILogger Logger
Change password
@@ -39,9 +38,9 @@
@code {
- private string? message;
- private ApplicationUser user = default!;
- private bool hasPassword;
+ private string? message;
+ private IdentityUser user = default!;
+ private bool hasPassword;
[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/DeletePersonalData.razor b/Aaru.Server.New/Components/Account/Pages/Manage/DeletePersonalData.razor
index 05d4b088..5fa66dc3 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/DeletePersonalData.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/DeletePersonalData.razor
@@ -1,13 +1,12 @@
@page "/Account/Manage/DeletePersonalData"
@using System.ComponentModel.DataAnnotations
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
-@inject SignInManager SignInManager
-@inject IdentityUserAccessor UserAccessor
-@inject IdentityRedirectManager RedirectManager
-@inject ILogger Logger
+@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject IdentityUserAccessor UserAccessor
+@inject IdentityRedirectManager RedirectManager
+@inject ILogger Logger
Delete Personal Data
@@ -38,9 +37,9 @@
@code {
- private string? message;
- private ApplicationUser user = default!;
- private bool requirePassword;
+ private string? message;
+ private IdentityUser user = default!;
+ private bool requirePassword;
[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/Disable2fa.razor b/Aaru.Server.New/Components/Account/Pages/Manage/Disable2fa.razor
index 68933aae..583c13c9 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/Disable2fa.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/Disable2fa.razor
@@ -1,11 +1,10 @@
@page "/Account/Manage/Disable2fa"
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
-@inject IdentityUserAccessor UserAccessor
-@inject IdentityRedirectManager RedirectManager
-@inject ILogger Logger
+@inject UserManager UserManager
+@inject IdentityUserAccessor UserAccessor
+@inject IdentityRedirectManager RedirectManager
+@inject ILogger Logger
Disable two-factor authentication (2FA)
@@ -30,7 +29,7 @@
@code {
- private ApplicationUser user = default!;
+ private IdentityUser user = default!;
[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/Email.razor b/Aaru.Server.New/Components/Account/Pages/Manage/Email.razor
index 780e38c3..4c5ee5df 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/Email.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/Email.razor
@@ -2,14 +2,13 @@
@using System.ComponentModel.DataAnnotations
@using System.Text
@using System.Text.Encodings.Web
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject UserManager UserManager
-@inject IEmailSender EmailSender
-@inject IdentityUserAccessor UserAccessor
-@inject NavigationManager NavigationManager
+@inject UserManager UserManager
+@inject IEmailSender EmailSender
+@inject IdentityUserAccessor UserAccessor
+@inject NavigationManager NavigationManager
Manage email
@@ -53,10 +52,10 @@
@code {
- private string? message;
- private ApplicationUser user = default!;
- private string? email;
- private bool isEmailConfirmed;
+ private string? message;
+ private IdentityUser user = default!;
+ private string? email;
+ private bool isEmailConfirmed;
[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/EnableAuthenticator.razor b/Aaru.Server.New/Components/Account/Pages/Manage/EnableAuthenticator.razor
index aa79c691..3d318da6 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/EnableAuthenticator.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/EnableAuthenticator.razor
@@ -3,10 +3,9 @@
@using System.Globalization
@using System.Text
@using System.Text.Encodings.Web
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
+@inject UserManager UserManager
@inject IdentityUserAccessor UserAccessor
@inject UrlEncoder UrlEncoder
@inject IdentityRedirectManager RedirectManager
@@ -70,7 +69,7 @@ else
private const string AuthenticatorUriFormat = "otpauth://totp/{0}:{1}?secret={2}&issuer={0}&digits=6";
private string? message;
- private ApplicationUser user = default!;
+ private IdentityUser user = default!;
private string? sharedKey;
private string? authenticatorUri;
private IEnumerable? recoveryCodes;
@@ -118,7 +117,7 @@ else
}
}
- private async ValueTask LoadSharedKeyAndQrCodeUriAsync(ApplicationUser user)
+ private async ValueTask LoadSharedKeyAndQrCodeUriAsync(IdentityUser user)
{
// Load the authenticator key & QR code URI to display on the form
string? unformattedKey = await UserManager.GetAuthenticatorKeyAsync(user);
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/ExternalLogins.razor b/Aaru.Server.New/Components/Account/Pages/Manage/ExternalLogins.razor
index 7e1e15ac..96a0729a 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/ExternalLogins.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/ExternalLogins.razor
@@ -1,13 +1,12 @@
@page "/Account/Manage/ExternalLogins"
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Authentication
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
-@inject SignInManager SignInManager
-@inject IdentityUserAccessor UserAccessor
-@inject IUserStore UserStore
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject IdentityUserAccessor UserAccessor
+@inject IUserStore UserStore
+@inject IdentityRedirectManager RedirectManager
Manage your external logins
@@ -65,7 +64,7 @@
@code {
public const string LinkLoginCallbackAction = "LinkLoginCallback";
- private ApplicationUser user = default!;
+ private IdentityUser user = default!;
private IList? currentLogins;
private IList? otherLogins;
private bool showRemoveButton;
@@ -90,7 +89,7 @@
string? passwordHash = null;
- if(UserStore is IUserPasswordStore userPasswordStore)
+ if(UserStore is IUserPasswordStore userPasswordStore)
{
passwordHash = await userPasswordStore.GetPasswordHashAsync(user, HttpContext.RequestAborted);
}
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor b/Aaru.Server.New/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor
index 22ff6e87..cba67c73 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor
@@ -1,8 +1,7 @@
@page "/Account/Manage/GenerateRecoveryCodes"
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
+@inject UserManager UserManager
@inject IdentityUserAccessor UserAccessor
@inject IdentityRedirectManager RedirectManager
@inject ILogger Logger
@@ -39,7 +38,7 @@ else
@code {
private string? message;
- private ApplicationUser user = default!;
+ private IdentityUser user = default!;
private IEnumerable? recoveryCodes;
[CascadingParameter]
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/Index.razor b/Aaru.Server.New/Components/Account/Pages/Manage/Index.razor
index f72cce77..4e9b7e41 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/Index.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/Index.razor
@@ -1,12 +1,11 @@
@page "/Account/Manage"
@using System.ComponentModel.DataAnnotations
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
-@inject SignInManager SignInManager
-@inject IdentityUserAccessor UserAccessor
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject IdentityUserAccessor UserAccessor
+@inject IdentityRedirectManager RedirectManager
Profile
@@ -33,9 +32,9 @@
@code {
- private ApplicationUser user = default!;
- private string? username;
- private string? phoneNumber;
+ private IdentityUser user = default!;
+ private string? username;
+ private string? phoneNumber;
[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/ResetAuthenticator.razor b/Aaru.Server.New/Components/Account/Pages/Manage/ResetAuthenticator.razor
index 49ec4ff9..f98cbf37 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/ResetAuthenticator.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/ResetAuthenticator.razor
@@ -1,12 +1,11 @@
@page "/Account/Manage/ResetAuthenticator"
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
-@inject SignInManager SignInManager
-@inject IdentityUserAccessor UserAccessor
-@inject IdentityRedirectManager RedirectManager
-@inject ILogger Logger
+@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject IdentityUserAccessor UserAccessor
+@inject IdentityRedirectManager RedirectManager
+@inject ILogger Logger
Reset authenticator key
@@ -35,7 +34,7 @@
private async Task OnSubmitAsync()
{
- ApplicationUser user = await UserAccessor.GetRequiredUserAsync(HttpContext);
+ IdentityUser user = await UserAccessor.GetRequiredUserAsync(HttpContext);
await UserManager.SetTwoFactorEnabledAsync(user, false);
await UserManager.ResetAuthenticatorKeyAsync(user);
string userId = await UserManager.GetUserIdAsync(user);
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/SetPassword.razor b/Aaru.Server.New/Components/Account/Pages/Manage/SetPassword.razor
index dc291dea..acb865dd 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/SetPassword.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/SetPassword.razor
@@ -1,12 +1,11 @@
@page "/Account/Manage/SetPassword"
@using System.ComponentModel.DataAnnotations
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
-@inject SignInManager SignInManager
-@inject IdentityUserAccessor UserAccessor
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject IdentityUserAccessor UserAccessor
+@inject IdentityRedirectManager RedirectManager
Set password
@@ -37,8 +36,8 @@
@code {
- private string? message;
- private ApplicationUser user = default!;
+ private string? message;
+ private IdentityUser user = default!;
[CascadingParameter]
private HttpContext HttpContext { get; set; } = default!;
diff --git a/Aaru.Server.New/Components/Account/Pages/Manage/TwoFactorAuthentication.razor b/Aaru.Server.New/Components/Account/Pages/Manage/TwoFactorAuthentication.razor
index f3c96a03..83deed42 100644
--- a/Aaru.Server.New/Components/Account/Pages/Manage/TwoFactorAuthentication.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Manage/TwoFactorAuthentication.razor
@@ -1,12 +1,11 @@
@page "/Account/Manage/TwoFactorAuthentication"
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Http.Features
@using Microsoft.AspNetCore.Identity
-@inject UserManager UserManager
-@inject SignInManager SignInManager
-@inject IdentityUserAccessor UserAccessor
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject SignInManager SignInManager
+@inject IdentityUserAccessor UserAccessor
+@inject IdentityRedirectManager RedirectManager
Two-factor authentication (2FA)
@@ -82,7 +81,7 @@ else
protected override async Task OnInitializedAsync()
{
- ApplicationUser user = await UserAccessor.GetRequiredUserAsync(HttpContext);
+ IdentityUser user = await UserAccessor.GetRequiredUserAsync(HttpContext);
canTrack = HttpContext.Features.Get()?.CanTrack ?? true;
hasAuthenticator = await UserManager.GetAuthenticatorKeyAsync(user) is not null;
is2faEnabled = await UserManager.GetTwoFactorEnabledAsync(user);
diff --git a/Aaru.Server.New/Components/Account/Pages/Register.razor b/Aaru.Server.New/Components/Account/Pages/Register.razor
index 1daeaa75..766d4304 100644
--- a/Aaru.Server.New/Components/Account/Pages/Register.razor
+++ b/Aaru.Server.New/Components/Account/Pages/Register.razor
@@ -2,17 +2,16 @@
@using System.ComponentModel.DataAnnotations
@using System.Text
@using System.Text.Encodings.Web
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject UserManager UserManager
-@inject IUserStore UserStore
-@inject SignInManager SignInManager
-@inject IEmailSender EmailSender
-@inject ILogger Logger
-@inject NavigationManager NavigationManager
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject IUserStore UserStore
+@inject SignInManager SignInManager
+@inject IEmailSender EmailSender
+@inject ILogger Logger
+@inject NavigationManager NavigationManager
+@inject IdentityRedirectManager RedirectManager
Register
@@ -66,10 +65,10 @@
public async Task RegisterUser(EditContext editContext)
{
- ApplicationUser user = CreateUser();
+ IdentityUser user = CreateUser();
await UserStore.SetUserNameAsync(user, Input.Email, CancellationToken.None);
- IUserEmailStore emailStore = GetEmailStore();
+ IUserEmailStore emailStore = GetEmailStore();
await emailStore.SetEmailAsync(user, Input.Email, CancellationToken.None);
IdentityResult result = await UserManager.CreateAsync(user, Input.Password);
@@ -110,26 +109,26 @@
RedirectManager.RedirectTo(ReturnUrl);
}
- private ApplicationUser CreateUser()
+ private IdentityUser CreateUser()
{
try
{
- return Activator.CreateInstance();
+ return Activator.CreateInstance();
}
catch
{
- throw new InvalidOperationException($"Can't create an instance of '{nameof(ApplicationUser)}'. " + $"Ensure that '{nameof(ApplicationUser)}' is not an abstract class and has a parameterless constructor.");
+ throw new InvalidOperationException($"Can't create an instance of '{nameof(IdentityUser)}'. " + $"Ensure that '{nameof(IdentityUser)}' is not an abstract class and has a parameterless constructor.");
}
}
- private IUserEmailStore GetEmailStore()
+ private IUserEmailStore GetEmailStore()
{
if(!UserManager.SupportsUserEmail)
{
throw new NotSupportedException("The default UI requires a user store with email support.");
}
- return (IUserEmailStore)UserStore;
+ return (IUserEmailStore)UserStore;
}
private sealed class InputModel
diff --git a/Aaru.Server.New/Components/Account/Pages/RegisterConfirmation.razor b/Aaru.Server.New/Components/Account/Pages/RegisterConfirmation.razor
index 6a441c2f..0cdb84be 100644
--- a/Aaru.Server.New/Components/Account/Pages/RegisterConfirmation.razor
+++ b/Aaru.Server.New/Components/Account/Pages/RegisterConfirmation.razor
@@ -1,13 +1,12 @@
@page "/Account/RegisterConfirmation"
@using System.Text
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject UserManager UserManager
-@inject IEmailSender EmailSender
-@inject NavigationManager NavigationManager
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject IEmailSender EmailSender
+@inject NavigationManager NavigationManager
+@inject IdentityRedirectManager RedirectManager
Register confirmation
@@ -47,7 +46,7 @@ else
RedirectManager.RedirectTo("");
}
- ApplicationUser? user = await UserManager.FindByEmailAsync(Email);
+ IdentityUser? user = await UserManager.FindByEmailAsync(Email);
if(user is null)
{
diff --git a/Aaru.Server.New/Components/Account/Pages/ResendEmailConfirmation.razor b/Aaru.Server.New/Components/Account/Pages/ResendEmailConfirmation.razor
index 722c965f..ceaddde0 100644
--- a/Aaru.Server.New/Components/Account/Pages/ResendEmailConfirmation.razor
+++ b/Aaru.Server.New/Components/Account/Pages/ResendEmailConfirmation.razor
@@ -2,14 +2,13 @@
@using System.ComponentModel.DataAnnotations
@using System.Text
@using System.Text.Encodings.Web
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject UserManager UserManager
-@inject IEmailSender EmailSender
-@inject NavigationManager NavigationManager
-@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
+@inject IEmailSender EmailSender
+@inject NavigationManager NavigationManager
+@inject IdentityRedirectManager RedirectManager
Resend email confirmation
@@ -40,7 +39,7 @@
private async Task OnValidSubmitAsync()
{
- ApplicationUser? user = await UserManager.FindByEmailAsync(Input.Email!);
+ IdentityUser? user = await UserManager.FindByEmailAsync(Input.Email!);
if(user is null)
{
diff --git a/Aaru.Server.New/Components/Account/Pages/ResetPassword.razor b/Aaru.Server.New/Components/Account/Pages/ResetPassword.razor
index 5e6582a1..87aa7af0 100644
--- a/Aaru.Server.New/Components/Account/Pages/ResetPassword.razor
+++ b/Aaru.Server.New/Components/Account/Pages/ResetPassword.razor
@@ -1,12 +1,11 @@
@page "/Account/ResetPassword"
@using System.ComponentModel.DataAnnotations
@using System.Text
-@using Aaru.Server.New.Data
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.WebUtilities
-@inject IdentityRedirectManager RedirectManager
-@inject UserManager UserManager
+@inject IdentityRedirectManager RedirectManager
+@inject UserManager UserManager
Reset password
@@ -64,7 +63,7 @@
private async Task OnValidSubmitAsync()
{
- ApplicationUser? user = await UserManager.FindByEmailAsync(Input.Email);
+ IdentityUser? user = await UserManager.FindByEmailAsync(Input.Email);
if(user is null)
{
diff --git a/Aaru.Server.New/Components/Account/Shared/ExternalLoginPicker.razor b/Aaru.Server.New/Components/Account/Shared/ExternalLoginPicker.razor
index 0cece230..fa390d2e 100644
--- a/Aaru.Server.New/Components/Account/Shared/ExternalLoginPicker.razor
+++ b/Aaru.Server.New/Components/Account/Shared/ExternalLoginPicker.razor
@@ -1,8 +1,7 @@
-@using Aaru.Server.New.Data
-@using Microsoft.AspNetCore.Authentication
+@using Microsoft.AspNetCore.Authentication
@using Microsoft.AspNetCore.Identity
-@inject SignInManager SignInManager
-@inject IdentityRedirectManager RedirectManager
+@inject SignInManager SignInManager
+@inject IdentityRedirectManager RedirectManager
@if(externalLogins.Length == 0)
{
diff --git a/Aaru.Server.New/Components/Account/Shared/ManageNavMenu.razor b/Aaru.Server.New/Components/Account/Shared/ManageNavMenu.razor
index 867c06f0..05a07dcf 100644
--- a/Aaru.Server.New/Components/Account/Shared/ManageNavMenu.razor
+++ b/Aaru.Server.New/Components/Account/Shared/ManageNavMenu.razor
@@ -1,6 +1,5 @@
-@using Aaru.Server.New.Data
-@using Microsoft.AspNetCore.Identity
-@inject SignInManager SignInManager
+@using Microsoft.AspNetCore.Identity
+@inject SignInManager SignInManager
-
diff --git a/Aaru.Server.New/Data/ApplicationDbContext.cs b/Aaru.Server.New/Data/ApplicationDbContext.cs
deleted file mode 100644
index 4a830e14..00000000
--- a/Aaru.Server.New/Data/ApplicationDbContext.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore;
-
-namespace Aaru.Server.New.Data;
-
-public class ApplicationDbContext
- (DbContextOptions options) : IdentityDbContext(options) {}
\ No newline at end of file
diff --git a/Aaru.Server.New/Data/ApplicationUser.cs b/Aaru.Server.New/Data/ApplicationUser.cs
deleted file mode 100644
index de4ab9e6..00000000
--- a/Aaru.Server.New/Data/ApplicationUser.cs
+++ /dev/null
@@ -1,6 +0,0 @@
-using Microsoft.AspNetCore.Identity;
-
-namespace Aaru.Server.New.Data;
-
-// Add profile data for application users by adding properties to the ApplicationUser class
-public class ApplicationUser : IdentityUser {}
\ No newline at end of file
diff --git a/Aaru.Server.New/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs b/Aaru.Server.New/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs
deleted file mode 100644
index f9c412df..00000000
--- a/Aaru.Server.New/Data/Migrations/00000000000000_CreateIdentitySchema.Designer.cs
+++ /dev/null
@@ -1,226 +0,0 @@
-//
-
-using System;
-using Aaru.Server.New.Data;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Migrations;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-
-#nullable disable
-
-namespace Aaru.Server.New.Migrations
-{
- [DbContext(typeof(ApplicationDbContext))]
- [Migration("00000000000000_CreateIdentitySchema")]
- partial class CreateIdentitySchema
- {
- ///
- protected override void BuildTargetModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder.HasAnnotation("ProductVersion", "8.0.0");
-
- modelBuilder.Entity("Aaru.Server.New.Data.ApplicationUser",
- b =>
- {
- b.Property("Id").HasColumnType("TEXT");
-
- b.Property("AccessFailedCount").HasColumnType("INTEGER");
-
- b.Property("ConcurrencyStamp").IsConcurrencyToken().HasColumnType("TEXT");
-
- b.Property("Email").HasMaxLength(256).HasColumnType("TEXT");
-
- b.Property("EmailConfirmed").HasColumnType("INTEGER");
-
- b.Property("LockoutEnabled").HasColumnType("INTEGER");
-
- b.Property("LockoutEnd").HasColumnType("TEXT");
-
- b.Property("NormalizedEmail").HasMaxLength(256).HasColumnType("TEXT");
-
- b.Property("NormalizedUserName").HasMaxLength(256).HasColumnType("TEXT");
-
- b.Property("PasswordHash").HasColumnType("TEXT");
-
- b.Property("PhoneNumber").HasColumnType("TEXT");
-
- b.Property("PhoneNumberConfirmed").HasColumnType("INTEGER");
-
- b.Property("SecurityStamp").HasColumnType("TEXT");
-
- b.Property("TwoFactorEnabled").HasColumnType("INTEGER");
-
- b.Property("UserName").HasMaxLength(256).HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("NormalizedEmail").HasDatabaseName("EmailIndex");
-
- b.HasIndex("NormalizedUserName").IsUnique().HasDatabaseName("UserNameIndex");
-
- b.ToTable("AspNetUsers", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole",
- b =>
- {
- b.Property("Id").HasColumnType("TEXT");
-
- b.Property("ConcurrencyStamp").IsConcurrencyToken().HasColumnType("TEXT");
-
- b.Property("Name").HasMaxLength(256).HasColumnType("TEXT");
-
- b.Property("NormalizedName").HasMaxLength(256).HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("NormalizedName").IsUnique().HasDatabaseName("RoleNameIndex");
-
- b.ToTable("AspNetRoles", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim",
- b =>
- {
- b.Property("Id").ValueGeneratedOnAdd().HasColumnType("INTEGER");
-
- b.Property("ClaimType").HasColumnType("TEXT");
-
- b.Property("ClaimValue").HasColumnType("TEXT");
-
- b.Property("RoleId").IsRequired().HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("RoleId");
-
- b.ToTable("AspNetRoleClaims", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim",
- b =>
- {
- b.Property("Id").ValueGeneratedOnAdd().HasColumnType("INTEGER");
-
- b.Property("ClaimType").HasColumnType("TEXT");
-
- b.Property("ClaimValue").HasColumnType("TEXT");
-
- b.Property("UserId").IsRequired().HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("AspNetUserClaims", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin",
- b =>
- {
- b.Property("LoginProvider").HasColumnType("TEXT");
-
- b.Property("ProviderKey").HasColumnType("TEXT");
-
- b.Property("ProviderDisplayName").HasColumnType("TEXT");
-
- b.Property("UserId").IsRequired().HasColumnType("TEXT");
-
- b.HasKey("LoginProvider", "ProviderKey");
-
- b.HasIndex("UserId");
-
- b.ToTable("AspNetUserLogins", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole",
- b =>
- {
- b.Property("UserId").HasColumnType("TEXT");
-
- b.Property("RoleId").HasColumnType("TEXT");
-
- b.HasKey("UserId", "RoleId");
-
- b.HasIndex("RoleId");
-
- b.ToTable("AspNetUserRoles", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken",
- b =>
- {
- b.Property("UserId").HasColumnType("TEXT");
-
- b.Property("LoginProvider").HasColumnType("TEXT");
-
- b.Property("Name").HasColumnType("TEXT");
-
- b.Property("Value").HasColumnType("TEXT");
-
- b.HasKey("UserId", "LoginProvider", "Name");
-
- b.ToTable("AspNetUserTokens", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim",
- b =>
- {
- b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
- .WithMany()
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim",
- b =>
- {
- b.HasOne("Aaru.Server.New.Data.ApplicationUser", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin",
- b =>
- {
- b.HasOne("Aaru.Server.New.Data.ApplicationUser", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole",
- b =>
- {
- b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
- .WithMany()
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("Aaru.Server.New.Data.ApplicationUser", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken",
- b =>
- {
- b.HasOne("Aaru.Server.New.Data.ApplicationUser", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-#pragma warning restore 612, 618
- }
- }
-}
\ No newline at end of file
diff --git a/Aaru.Server.New/Data/Migrations/00000000000000_CreateIdentitySchema.cs b/Aaru.Server.New/Data/Migrations/00000000000000_CreateIdentitySchema.cs
deleted file mode 100644
index e64d9adc..00000000
--- a/Aaru.Server.New/Data/Migrations/00000000000000_CreateIdentitySchema.cs
+++ /dev/null
@@ -1,212 +0,0 @@
-using System;
-using Microsoft.EntityFrameworkCore.Migrations;
-
-#nullable disable
-
-namespace Aaru.Server.New.Migrations
-{
- ///
- public partial class CreateIdentitySchema : Migration
- {
- ///
- protected override void Up(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.CreateTable(name: "AspNetRoles",
- columns: table => new
- {
- Id = table.Column(type: "TEXT", nullable: false),
- Name = table.Column(type: "TEXT", maxLength: 256, nullable: true),
- NormalizedName =
- table.Column(type: "TEXT", maxLength: 256, nullable: true),
- ConcurrencyStamp = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table => { table.PrimaryKey("PK_AspNetRoles", x => x.Id); });
-
- migrationBuilder.CreateTable(name: "AspNetUsers",
- columns: table => new
- {
- Id = table.Column(type: "TEXT", nullable: false),
- UserName =
- table.Column(type: "TEXT", maxLength: 256, nullable: true),
- NormalizedUserName =
- table.Column(type: "TEXT", maxLength: 256, nullable: true),
- Email = table.Column(type: "TEXT", maxLength: 256, nullable: true),
- NormalizedEmail =
- table.Column(type: "TEXT", maxLength: 256, nullable: true),
- EmailConfirmed = table.Column(type: "INTEGER", nullable: false),
- PasswordHash = table.Column(type: "TEXT", nullable: true),
- SecurityStamp = table.Column(type: "TEXT", nullable: true),
- ConcurrencyStamp = table.Column(type: "TEXT", nullable: true),
- PhoneNumber = table.Column(type: "TEXT", nullable: true),
- PhoneNumberConfirmed =
- table.Column(type: "INTEGER", nullable: false),
- TwoFactorEnabled = table.Column(type: "INTEGER", nullable: false),
- LockoutEnd = table.Column(type: "TEXT", nullable: true),
- LockoutEnabled = table.Column(type: "INTEGER", nullable: false),
- AccessFailedCount = table.Column(type: "INTEGER", nullable: false)
- },
- constraints: table => { table.PrimaryKey("PK_AspNetUsers", x => x.Id); });
-
- migrationBuilder.CreateTable(name: "AspNetRoleClaims",
- columns: table => new
- {
- Id = table.Column(type: "INTEGER", nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- RoleId = table.Column(type: "TEXT", nullable: false),
- ClaimType = table.Column(type: "TEXT", nullable: true),
- ClaimValue = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AspNetRoleClaims", x => x.Id);
-
- table.ForeignKey(name: "FK_AspNetRoleClaims_AspNetRoles_RoleId",
- column: x => x.RoleId,
- principalTable: "AspNetRoles",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(name: "AspNetUserClaims",
- columns: table => new
- {
- Id = table.Column(type: "INTEGER", nullable: false)
- .Annotation("Sqlite:Autoincrement", true),
- UserId = table.Column(type: "TEXT", nullable: false),
- ClaimType = table.Column(type: "TEXT", nullable: true),
- ClaimValue = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AspNetUserClaims", x => x.Id);
-
- table.ForeignKey(name: "FK_AspNetUserClaims_AspNetUsers_UserId",
- column: x => x.UserId,
- principalTable: "AspNetUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(name: "AspNetUserLogins",
- columns: table => new
- {
- LoginProvider = table.Column(type: "TEXT", nullable: false),
- ProviderKey = table.Column(type: "TEXT", nullable: false),
- ProviderDisplayName = table.Column(type: "TEXT", nullable: true),
- UserId = table.Column(type: "TEXT", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AspNetUserLogins",
- x => new
- {
- x.LoginProvider,
- x.ProviderKey
- });
-
- table.ForeignKey(name: "FK_AspNetUserLogins_AspNetUsers_UserId",
- column: x => x.UserId,
- principalTable: "AspNetUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(name: "AspNetUserRoles",
- columns: table => new
- {
- UserId = table.Column(type: "TEXT", nullable: false),
- RoleId = table.Column(type: "TEXT", nullable: false)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AspNetUserRoles",
- x => new
- {
- x.UserId,
- x.RoleId
- });
-
- table.ForeignKey(name: "FK_AspNetUserRoles_AspNetRoles_RoleId",
- column: x => x.RoleId,
- principalTable: "AspNetRoles",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
-
- table.ForeignKey(name: "FK_AspNetUserRoles_AspNetUsers_UserId",
- column: x => x.UserId,
- principalTable: "AspNetUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateTable(name: "AspNetUserTokens",
- columns: table => new
- {
- UserId = table.Column(type: "TEXT", nullable: false),
- LoginProvider = table.Column(type: "TEXT", nullable: false),
- Name = table.Column(type: "TEXT", nullable: false),
- Value = table.Column(type: "TEXT", nullable: true)
- },
- constraints: table =>
- {
- table.PrimaryKey("PK_AspNetUserTokens",
- x => new
- {
- x.UserId,
- x.LoginProvider,
- x.Name
- });
-
- table.ForeignKey(name: "FK_AspNetUserTokens_AspNetUsers_UserId",
- column: x => x.UserId,
- principalTable: "AspNetUsers",
- principalColumn: "Id",
- onDelete: ReferentialAction.Cascade);
- });
-
- migrationBuilder.CreateIndex(name: "IX_AspNetRoleClaims_RoleId",
- table: "AspNetRoleClaims",
- column: "RoleId");
-
- migrationBuilder.CreateIndex(name: "RoleNameIndex",
- table: "AspNetRoles",
- column: "NormalizedName",
- unique: true);
-
- migrationBuilder.CreateIndex(name: "IX_AspNetUserClaims_UserId",
- table: "AspNetUserClaims",
- column: "UserId");
-
- migrationBuilder.CreateIndex(name: "IX_AspNetUserLogins_UserId",
- table: "AspNetUserLogins",
- column: "UserId");
-
- migrationBuilder.CreateIndex(name: "IX_AspNetUserRoles_RoleId", table: "AspNetUserRoles", column: "RoleId");
-
- migrationBuilder.CreateIndex(name: "EmailIndex", table: "AspNetUsers", column: "NormalizedEmail");
-
- migrationBuilder.CreateIndex(name: "UserNameIndex",
- table: "AspNetUsers",
- column: "NormalizedUserName",
- unique: true);
- }
-
- ///
- protected override void Down(MigrationBuilder migrationBuilder)
- {
- migrationBuilder.DropTable(name: "AspNetRoleClaims");
-
- migrationBuilder.DropTable(name: "AspNetUserClaims");
-
- migrationBuilder.DropTable(name: "AspNetUserLogins");
-
- migrationBuilder.DropTable(name: "AspNetUserRoles");
-
- migrationBuilder.DropTable(name: "AspNetUserTokens");
-
- migrationBuilder.DropTable(name: "AspNetRoles");
-
- migrationBuilder.DropTable(name: "AspNetUsers");
- }
- }
-}
\ No newline at end of file
diff --git a/Aaru.Server.New/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/Aaru.Server.New/Data/Migrations/ApplicationDbContextModelSnapshot.cs
deleted file mode 100644
index eea4fae6..00000000
--- a/Aaru.Server.New/Data/Migrations/ApplicationDbContextModelSnapshot.cs
+++ /dev/null
@@ -1,223 +0,0 @@
-//
-
-using System;
-using Aaru.Server.New.Data;
-using Microsoft.EntityFrameworkCore;
-using Microsoft.EntityFrameworkCore.Infrastructure;
-using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
-
-#nullable disable
-
-namespace Aaru.Server.New.Migrations
-{
- [DbContext(typeof(ApplicationDbContext))]
- partial class ApplicationDbContextModelSnapshot : ModelSnapshot
- {
- protected override void BuildModel(ModelBuilder modelBuilder)
- {
-#pragma warning disable 612, 618
- modelBuilder.HasAnnotation("ProductVersion", "8.0.0");
-
- modelBuilder.Entity("Aaru.Server.New.Data.ApplicationUser",
- b =>
- {
- b.Property("Id").HasColumnType("TEXT");
-
- b.Property("AccessFailedCount").HasColumnType("INTEGER");
-
- b.Property("ConcurrencyStamp").IsConcurrencyToken().HasColumnType("TEXT");
-
- b.Property("Email").HasMaxLength(256).HasColumnType("TEXT");
-
- b.Property("EmailConfirmed").HasColumnType("INTEGER");
-
- b.Property("LockoutEnabled").HasColumnType("INTEGER");
-
- b.Property("LockoutEnd").HasColumnType("TEXT");
-
- b.Property("NormalizedEmail").HasMaxLength(256).HasColumnType("TEXT");
-
- b.Property("NormalizedUserName").HasMaxLength(256).HasColumnType("TEXT");
-
- b.Property("PasswordHash").HasColumnType("TEXT");
-
- b.Property("PhoneNumber").HasColumnType("TEXT");
-
- b.Property("PhoneNumberConfirmed").HasColumnType("INTEGER");
-
- b.Property("SecurityStamp").HasColumnType("TEXT");
-
- b.Property("TwoFactorEnabled").HasColumnType("INTEGER");
-
- b.Property("UserName").HasMaxLength(256).HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("NormalizedEmail").HasDatabaseName("EmailIndex");
-
- b.HasIndex("NormalizedUserName").IsUnique().HasDatabaseName("UserNameIndex");
-
- b.ToTable("AspNetUsers", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole",
- b =>
- {
- b.Property("Id").HasColumnType("TEXT");
-
- b.Property("ConcurrencyStamp").IsConcurrencyToken().HasColumnType("TEXT");
-
- b.Property("Name").HasMaxLength(256).HasColumnType("TEXT");
-
- b.Property("NormalizedName").HasMaxLength(256).HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("NormalizedName").IsUnique().HasDatabaseName("RoleNameIndex");
-
- b.ToTable("AspNetRoles", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim",
- b =>
- {
- b.Property("Id").ValueGeneratedOnAdd().HasColumnType("INTEGER");
-
- b.Property("ClaimType").HasColumnType("TEXT");
-
- b.Property("ClaimValue").HasColumnType("TEXT");
-
- b.Property("RoleId").IsRequired().HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("RoleId");
-
- b.ToTable("AspNetRoleClaims", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim",
- b =>
- {
- b.Property("Id").ValueGeneratedOnAdd().HasColumnType("INTEGER");
-
- b.Property("ClaimType").HasColumnType("TEXT");
-
- b.Property("ClaimValue").HasColumnType("TEXT");
-
- b.Property("UserId").IsRequired().HasColumnType("TEXT");
-
- b.HasKey("Id");
-
- b.HasIndex("UserId");
-
- b.ToTable("AspNetUserClaims", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin",
- b =>
- {
- b.Property("LoginProvider").HasColumnType("TEXT");
-
- b.Property("ProviderKey").HasColumnType("TEXT");
-
- b.Property("ProviderDisplayName").HasColumnType("TEXT");
-
- b.Property("UserId").IsRequired().HasColumnType("TEXT");
-
- b.HasKey("LoginProvider", "ProviderKey");
-
- b.HasIndex("UserId");
-
- b.ToTable("AspNetUserLogins", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole",
- b =>
- {
- b.Property("UserId").HasColumnType("TEXT");
-
- b.Property("RoleId").HasColumnType("TEXT");
-
- b.HasKey("UserId", "RoleId");
-
- b.HasIndex("RoleId");
-
- b.ToTable("AspNetUserRoles", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken",
- b =>
- {
- b.Property("UserId").HasColumnType("TEXT");
-
- b.Property("LoginProvider").HasColumnType("TEXT");
-
- b.Property("Name").HasColumnType("TEXT");
-
- b.Property("Value").HasColumnType("TEXT");
-
- b.HasKey("UserId", "LoginProvider", "Name");
-
- b.ToTable("AspNetUserTokens", (string)null);
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim",
- b =>
- {
- b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
- .WithMany()
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim",
- b =>
- {
- b.HasOne("Aaru.Server.New.Data.ApplicationUser", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin",
- b =>
- {
- b.HasOne("Aaru.Server.New.Data.ApplicationUser", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole",
- b =>
- {
- b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole", null)
- .WithMany()
- .HasForeignKey("RoleId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
-
- b.HasOne("Aaru.Server.New.Data.ApplicationUser", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-
- modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken",
- b =>
- {
- b.HasOne("Aaru.Server.New.Data.ApplicationUser", null)
- .WithMany()
- .HasForeignKey("UserId")
- .OnDelete(DeleteBehavior.Cascade)
- .IsRequired();
- });
-#pragma warning restore 612, 618
- }
- }
-}
\ No newline at end of file
diff --git a/Aaru.Server.New/Data/app.db b/Aaru.Server.New/Data/app.db
deleted file mode 100644
index 769de58a9edcf5a1759ed6f6ce8bd0b2608e727e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 102400
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
diff --git a/Aaru.Server.New/Program.cs b/Aaru.Server.New/Program.cs
index e4e1ea34..c869a6cc 100644
--- a/Aaru.Server.New/Program.cs
+++ b/Aaru.Server.New/Program.cs
@@ -1,6 +1,5 @@
using Aaru.Server.New.Components;
using Aaru.Server.New.Components.Account;
-using Aaru.Server.New.Data;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.AspNetCore.Identity;
using Microsoft.EntityFrameworkCore;
@@ -25,15 +24,23 @@ builder.Services.AddAuthentication(options =>
string connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ??
throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
-builder.Services.AddDbContext(options => options.UseSqlite(connectionString));
+builder.Services.AddDbContext(options => options
+ .UseMySql(connectionString,
+ new MariaDbServerVersion(new Version(10, 4, 0)))
+ .UseLazyLoadingProxies());
+
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
-builder.Services.AddIdentityCore(options => options.SignIn.RequireConfirmedAccount = true)
- .AddEntityFrameworkStores()
+builder.Services.AddIdentityCore(options =>
+ {
+ options.SignIn.RequireConfirmedAccount = true;
+ options.User.RequireUniqueEmail = true;
+ })
+ .AddEntityFrameworkStores()
.AddSignInManager()
.AddDefaultTokenProviders();
-builder.Services.AddSingleton, IdentityNoOpEmailSender>();
+builder.Services.AddSingleton, IdentityNoOpEmailSender>();
WebApplication app = builder.Build();
diff --git a/Aaru.Server.New/appsettings.Development.json b/Aaru.Server.New/appsettings.Development.json
index 0df00402..6efd86ba 100644
--- a/Aaru.Server.New/appsettings.Development.json
+++ b/Aaru.Server.New/appsettings.Development.json
@@ -1,5 +1,8 @@
{
- "Logging": {
+ "ConnectionStrings": {
+ "DefaultConnection": "server=mariadb-dev.claunia.com;port=3306;database=discimagechef;uid=dic;password=dicpass"
+ },
+ "Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"