diff --git a/OpenArchival.Blazor/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs b/OpenArchival.Blazor/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs index 8fc0f09..394a8ea 100644 --- a/OpenArchival.Blazor/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs +++ b/OpenArchival.Blazor/Components/Account/IdentityComponentsEndpointRouteBuilderExtensions.cs @@ -1,14 +1,14 @@ +using System.Security.Claims; +using System.Text.Json; +using OpenArchival.Blazor.Components.Account.Pages.Manage; +using OpenArchival.Blazor.Components.Account.Pages; +using OpenArchival.DataAccess; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Http.Extensions; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Primitives; -using OpenArchival.Blazor.Components.Account.Pages; -using OpenArchival.Blazor.Components.Account.Pages.Manage; -using OpenArchival.Blazor.Data; -using System.Security.Claims; -using System.Text.Json; namespace Microsoft.AspNetCore.Routing { diff --git a/OpenArchival.Blazor/Components/Account/IdentityNoOpEmailSender.cs b/OpenArchival.Blazor/Components/Account/IdentityNoOpEmailSender.cs index d8f1b5b..d9b22a4 100644 --- a/OpenArchival.Blazor/Components/Account/IdentityNoOpEmailSender.cs +++ b/OpenArchival.Blazor/Components/Account/IdentityNoOpEmailSender.cs @@ -1,8 +1,8 @@ +using OpenArchival.DataAccess; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Identity.UI.Services; -using OpenArchival.Blazor.Data; -namespace OpenArchival.Blazor.Components.Account +namespace MyAppName.WebApp.Components.Account { // Remove the "else if (EmailSender is IdentityNoOpEmailSender)" block from RegisterConfirmation.razor after updating with a real implementation. internal sealed class IdentityNoOpEmailSender : IEmailSender diff --git a/OpenArchival.Blazor/Components/Account/IdentityRedirectManager.cs b/OpenArchival.Blazor/Components/Account/IdentityRedirectManager.cs index 0b52ad3..a2d6419 100644 --- a/OpenArchival.Blazor/Components/Account/IdentityRedirectManager.cs +++ b/OpenArchival.Blazor/Components/Account/IdentityRedirectManager.cs @@ -1,7 +1,7 @@ -using Microsoft.AspNetCore.Components; using System.Diagnostics.CodeAnalysis; +using Microsoft.AspNetCore.Components; -namespace OpenArchival.Blazor.Components.Account +namespace MyAppName.WebApp.Components.Account { internal sealed class IdentityRedirectManager(NavigationManager navigationManager) { diff --git a/OpenArchival.Blazor/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs b/OpenArchival.Blazor/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs index eed8388..c9fb218 100644 --- a/OpenArchival.Blazor/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs +++ b/OpenArchival.Blazor/Components/Account/IdentityRevalidatingAuthenticationStateProvider.cs @@ -1,11 +1,11 @@ +using System.Security.Claims; +using OpenArchival.DataAccess; using Microsoft.AspNetCore.Components.Authorization; using Microsoft.AspNetCore.Components.Server; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Options; -using OpenArchival.Blazor.Data; -using System.Security.Claims; -namespace OpenArchival.Blazor.Components.Account +namespace MyAppName.WebApp.Components.Account { // This is a server-side AuthenticationStateProvider that revalidates the security stamp for the connected user // every 30 minutes an interactive circuit is connected. diff --git a/OpenArchival.Blazor/Components/Account/IdentityUserAccessor.cs b/OpenArchival.Blazor/Components/Account/IdentityUserAccessor.cs index 7284d83..81053ea 100644 --- a/OpenArchival.Blazor/Components/Account/IdentityUserAccessor.cs +++ b/OpenArchival.Blazor/Components/Account/IdentityUserAccessor.cs @@ -1,7 +1,7 @@ +using OpenArchival.DataAccess; using Microsoft.AspNetCore.Identity; -using OpenArchival.Blazor.Data; -namespace OpenArchival.Blazor.Components.Account +namespace MyAppName.WebApp.Components.Account { internal sealed class IdentityUserAccessor(UserManager userManager, IdentityRedirectManager redirectManager) { diff --git a/OpenArchival.Blazor/Components/Account/Pages/AccessDenied.razor b/OpenArchival.Blazor/Components/Account/Pages/AccessDenied.razor index db67a6f..905dec3 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/AccessDenied.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/AccessDenied.razor @@ -2,4 +2,7 @@ Access denied -You do not have access to this resource. +
+

Access denied

+

You do not have access to this resource.

+
diff --git a/OpenArchival.Blazor/Components/Account/Pages/ConfirmEmail.razor b/OpenArchival.Blazor/Components/Account/Pages/ConfirmEmail.razor index d092670..e76d6fa 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/ConfirmEmail.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/ConfirmEmail.razor @@ -3,7 +3,8 @@ @using System.Text @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IdentityRedirectManager RedirectManager diff --git a/OpenArchival.Blazor/Components/Account/Pages/ConfirmEmailChange.razor b/OpenArchival.Blazor/Components/Account/Pages/ConfirmEmailChange.razor index 7298373..69ae3aa 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/ConfirmEmailChange.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/ConfirmEmailChange.razor @@ -3,7 +3,8 @@ @using System.Text @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject SignInManager SignInManager diff --git a/OpenArchival.Blazor/Components/Account/Pages/ExternalLogin.razor b/OpenArchival.Blazor/Components/Account/Pages/ExternalLogin.razor index 5625ceb..7decf73 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/ExternalLogin.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/ExternalLogin.razor @@ -6,7 +6,9 @@ @using System.Text.Encodings.Web @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess +@using OpenArchival.Blazor.Components.Account.Pages; @inject SignInManager SignInManager @inject UserManager UserManager @@ -21,7 +23,7 @@

Register

Associate your @ProviderDisplayName account.

- +
You've successfully authenticated with @ProviderDisplayName. @@ -105,8 +107,8 @@ // Sign in the user with this external login provider if the user already has a login. var result = await SignInManager.ExternalLoginSignInAsync( - externalLoginInfo!.LoginProvider, - externalLoginInfo!.ProviderKey, + externalLoginInfo.LoginProvider, + externalLoginInfo.ProviderKey, isPersistent: false, bypassTwoFactor: true); @@ -174,7 +176,7 @@ message = $"Error: {string.Join(",", result.Errors.Select(error => error.Description))}"; } - private static ApplicationUser CreateUser() + private ApplicationUser CreateUser() { try { diff --git a/OpenArchival.Blazor/Components/Account/Pages/ForgotPassword.razor b/OpenArchival.Blazor/Components/Account/Pages/ForgotPassword.razor index e992d6f..81f04b5 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/ForgotPassword.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/ForgotPassword.razor @@ -5,7 +5,8 @@ @using System.Text.Encodings.Web @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IEmailSender EmailSender @@ -14,24 +15,24 @@ Forgot your password? -Forgot your password? -Enter your email. +

Forgot your password?

+

Enter your email.

+
+
+
+ + + - - - - - - - - - - Reset password - - - +
+ + + +
+ +
+
+
@code { [SupplyParameterFromForm] diff --git a/OpenArchival.Blazor/Components/Account/Pages/ForgotPasswordConfirmation.razor b/OpenArchival.Blazor/Components/Account/Pages/ForgotPasswordConfirmation.razor index 31f70ce..a771a3a 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/ForgotPasswordConfirmation.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/ForgotPasswordConfirmation.razor @@ -2,6 +2,7 @@ Forgot password confirmation -Forgot password confirmation - -Please check your email to reset your password. +

Forgot password confirmation

+

+ Please check your email to reset your password. +

diff --git a/OpenArchival.Blazor/Components/Account/Pages/Login.razor b/OpenArchival.Blazor/Components/Account/Pages/Login.razor index e68286d..18ce30d 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Login.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Login.razor @@ -3,7 +3,8 @@ @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Authentication @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject SignInManager SignInManager @inject ILogger Logger @@ -12,50 +13,57 @@ Log in -Log in - - - - - - - - Use a local account to log in. - - - - - - - - - - Remember me - - - Log in - - - - - - - Forgot your password?
- { ["ReturnUrl"] = ReturnUrl }))">Register as a new user
- Resend email confirmation -
-
-
- - Use another service to log in. - - - -
+

Log in

+
+
+
+ + + +

Use a local account to log in.

+
+ +
+ + + +
+
+ + + +
+
+ +
+
+ +
+ +
+
+
+
+
+

Use another service to log in.

+
+ +
+
+
@code { private string? errorMessage; diff --git a/OpenArchival.Blazor/Components/Account/Pages/LoginWith2fa.razor b/OpenArchival.Blazor/Components/Account/Pages/LoginWith2fa.razor index d7ad199..4747619 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/LoginWith2fa.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/LoginWith2fa.razor @@ -2,7 +2,8 @@ @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject SignInManager SignInManager @inject UserManager UserManager @@ -12,7 +13,7 @@ Two-factor authentication

Two-factor authentication

- +

Your login is protected with an authenticator app. Enter your authenticator code below.

@@ -41,7 +42,7 @@

Don't have access to your authenticator device? You can - log in with a recovery code. + log in with a recovery code.

@code { diff --git a/OpenArchival.Blazor/Components/Account/Pages/LoginWithRecoveryCode.razor b/OpenArchival.Blazor/Components/Account/Pages/LoginWithRecoveryCode.razor index 8942e53..e27c53e 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/LoginWithRecoveryCode.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/LoginWithRecoveryCode.razor @@ -2,7 +2,8 @@ @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject SignInManager SignInManager @inject UserManager UserManager @@ -12,7 +13,7 @@ Recovery code verification

Recovery code verification

- +

You have requested to log in with a recovery code. This login will not be remembered until you provide @@ -24,8 +25,8 @@

- - + +
diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/ChangePassword.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/ChangePassword.razor index 6456022..98d3a26 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/ChangePassword.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/ChangePassword.razor @@ -2,7 +2,8 @@ @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject SignInManager SignInManager @@ -12,34 +13,32 @@ Change password -Change password - +

Change password

- - - - - - - - - - - - - - - - Update password - - - +
+
+ + + +
+ + + +
+
+ + + +
+
+ + + +
+ +
+
+
@code { private string? message; diff --git a/OpenArchival.Core/obj/Debug/net9.0/OpenArchival.Core.OLD.Remove.csproj.BuildWithSkipAnalyzers b/OpenArchival.Blazor/Components/Account/Pages/Manage/Component.razor similarity index 100% rename from OpenArchival.Core/obj/Debug/net9.0/OpenArchival.Core.OLD.Remove.csproj.BuildWithSkipAnalyzers rename to OpenArchival.Blazor/Components/Account/Pages/Manage/Component.razor diff --git a/OpenArchival.Core/obj/Debug/net9.0/OpenArchival.Core.csproj.BuildWithSkipAnalyzers b/OpenArchival.Blazor/Components/Account/Pages/Manage/Component1.razor similarity index 100% rename from OpenArchival.Core/obj/Debug/net9.0/OpenArchival.Core.csproj.BuildWithSkipAnalyzers rename to OpenArchival.Blazor/Components/Account/Pages/Manage/Component1.razor diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/DeletePersonalData.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/DeletePersonalData.razor index a286201..920d974 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/DeletePersonalData.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/DeletePersonalData.razor @@ -2,7 +2,8 @@ @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject SignInManager SignInManager @@ -12,31 +13,31 @@ Delete Personal Data -Delete personal data - - - Deleting this data will permanently remove your account, and this cannot be recovered. - +

Delete Personal Data

- - + - +
+ + + @if (requirePassword) { - - - +
+ + + +
} - - Delete data and close my account - - -
+ + +
@code { private string? message; diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/Disable2fa.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/Disable2fa.razor index 854f98b..3413f42 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/Disable2fa.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/Disable2fa.razor @@ -1,7 +1,8 @@ @page "/Account/Manage/Disable2fa" @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IdentityUserAccessor UserAccessor diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/Email.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/Email.razor index b3e2ec8..4df1c95 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/Email.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/Email.razor @@ -5,7 +5,8 @@ @using System.Text.Encodings.Web @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IEmailSender EmailSender @@ -14,43 +15,44 @@ Manage email -Manage email +

Manage email

- - -
- - - - - - - - @if (isEmailConfirmed) - { - - - - } - else - { - - - - - Send verification email - - } - - - - - - - Change email - - - + +
+
+
+ + + + + + @if (isEmailConfirmed) + { +
+ +
+ +
+ +
+ } + else + { +
+ + + +
+ } +
+ + + +
+ +
+
+
@code { private string? message; diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/EnableAuthenticator.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/EnableAuthenticator.razor index 12e582c..b0d7aa5 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/EnableAuthenticator.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/EnableAuthenticator.razor @@ -5,7 +5,8 @@ @using System.Text @using System.Text.Encodings.Web @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IdentityUserAccessor UserAccessor @@ -21,55 +22,49 @@ } else { - Configure authenticator app - - - To use an authenticator app go through the following steps: - -
    -
  1. - - Download a two-factor authenticator app like Microsoft Authenticator for - Android and - iOS or - Google Authenticator for - Android and - iOS. - -
  2. -
  3. - - Scan the QR Code or enter this key into your two factor authenticator app. Spaces and casing do not matter: - - - @sharedKey - - - Learn how to enable QR code generation. - - -
    -
  4. -
  5. - - Once you have scanned the QR code or input the key above, your two factor authentication app will provide you - with a unique code. Enter the code in the confirmation box below. - - - - - - - - - - Verify - - - -
  6. -
+

Configure authenticator app

+
+

To use an authenticator app go through the following steps:

+
    +
  1. +

    + Download a two-factor authenticator app like Microsoft Authenticator for + Android and + iOS or + Google Authenticator for + Android and + iOS. +

    +
  2. +
  3. +

    Scan the QR Code or enter this key @sharedKey into your two factor authenticator app. Spaces and casing do not matter.

    + +
    +
    +
  4. +
  5. +

    + Once you have scanned the QR code or input the key above, your two factor authentication app will provide you + with a unique code. Enter the code in the confirmation box below. +

    +
    +
    + + +
    + + + +
    + + +
    +
    +
    +
  6. +
+
} @code { diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/ExternalLogins.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/ExternalLogins.razor index 19c7497..0566f3b 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/ExternalLogins.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/ExternalLogins.razor @@ -2,7 +2,8 @@ @using Microsoft.AspNetCore.Authentication @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject SignInManager SignInManager @@ -47,7 +48,7 @@ @if (otherLogins?.Count > 0) {

Add another service to log in.

- +
diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor index 728b69a..24af3a5 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/GenerateRecoveryCodes.razor @@ -1,7 +1,8 @@ @page "/Account/Manage/GenerateRecoveryCodes" @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IdentityUserAccessor UserAccessor diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/Index.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/Index.razor index b7dacb3..ce00408 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/Index.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/Index.razor @@ -2,7 +2,8 @@ @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject SignInManager SignInManager @@ -11,27 +12,27 @@ Profile -Profile - +

Profile

- - - - - - - - - - - - Save - - - +
+
+ + + +
+ + +
+
+ + + +
+ +
+
+
@code { private ApplicationUser user = default!; diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/PersonalData.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/PersonalData.razor index 5f3c009..3ee11c8 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/PersonalData.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/PersonalData.razor @@ -1,34 +1,28 @@ @page "/Account/Manage/PersonalData" +@using MyAppName.WebApp.Components.Account @inject IdentityUserAccessor UserAccessor Personal Data -Personal data - +

Personal Data

- - - - Your account contains personal data that you have given us. This page allows you to download or delete that data. - - - - - Deleting this data will permanently remove your account, and this cannot be recovered. - - - +
+
+

Your account contains personal data that you have given us. This page allows you to download or delete that data.

+

+ Deleting this data will permanently remove your account, and this cannot be recovered. +

- Download + - - - Delete - - +

+ Delete +

+
+
@code { [CascadingParameter] diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/ResetAuthenticator.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/ResetAuthenticator.razor index 2729e6b..a2448a6 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/ResetAuthenticator.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/ResetAuthenticator.razor @@ -1,7 +1,8 @@ @page "/Account/Manage/ResetAuthenticator" @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject SignInManager SignInManager @@ -11,24 +12,24 @@ Reset authenticator key -Reset authenticator key - - - - If you reset your authenticator key your authenticator app will not work until you reconfigure it. - - - - This process disables 2FA until you verify your authenticator app. - If you do not complete your authenticator app configuration you may lose access to your account. - - -
- - - Reset authenticator key - +

Reset authenticator key

+ +
+
+ + + +
@code { [CascadingParameter] diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/SetPassword.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/SetPassword.razor index 4aa78dd..e0b11db 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/SetPassword.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/SetPassword.razor @@ -2,7 +2,8 @@ @using System.ComponentModel.DataAnnotations @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject SignInManager SignInManager diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/TwoFactorAuthentication.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/TwoFactorAuthentication.razor index f411e80..b093fb0 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/TwoFactorAuthentication.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/TwoFactorAuthentication.razor @@ -2,7 +2,8 @@ @using Microsoft.AspNetCore.Http.Features @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject SignInManager SignInManager @@ -11,72 +12,63 @@ Two-factor authentication (2FA) -Two-factor authentication (2FA) - - +

Two-factor authentication (2FA)

@if (canTrack) { if (is2faEnabled) { if (recoveryCodesLeft == 0) { - You have no recovery codes left. - - - You must generate a new set of recovery codes - before you can log in with a recovery code. - +
+ You have no recovery codes left. +

You must generate a new set of recovery codes before you can log in with a recovery code.

+
} else if (recoveryCodesLeft == 1) { - You have 1 recovery code left. - - - You can generate a new set of recovery codes. - +
+ You have 1 recovery code left. +

You can generate a new set of recovery codes.

+
} else if (recoveryCodesLeft <= 3) { - You have @recoveryCodesLeft recovery codes left. - - - You should generate a new set of recovery codes. - +
+ You have @recoveryCodesLeft recovery codes left. +

You should generate a new set of recovery codes.

+
} if (isMachineRemembered) {
- - Forget this browser + } - Disable 2FA
- Reset recovery codes + Disable 2FA + Reset recovery codes } - Authenticator app - +

Authenticator app

@if (!hasAuthenticator) { - Add authenticator app
+ Add authenticator app } else { - Set up authenticator app
- Reset authenticator app + Set up authenticator app + Reset authenticator app } } else { - Privacy and cookie policy have not been accepted. - - - You must accept the policy before you can enable two factor authentication. - +
+ Privacy and cookie policy have not been accepted. +

You must accept the policy before you can enable two factor authentication.

+
} @code { diff --git a/OpenArchival.Blazor/Components/Account/Pages/Manage/_Imports.razor b/OpenArchival.Blazor/Components/Account/Pages/Manage/_Imports.razor index ada5bb0..0bf10c9 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Manage/_Imports.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Manage/_Imports.razor @@ -1,2 +1,3 @@ -@layout ManageLayout +@using OpenArchival.Blazor.Components.Account.Shared +@layout ManageLayout @attribute [Microsoft.AspNetCore.Authorization.Authorize] diff --git a/OpenArchival.Blazor/Components/Account/Pages/Register.razor b/OpenArchival.Blazor/Components/Account/Pages/Register.razor index a7af505..568bc94 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/Register.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/Register.razor @@ -5,7 +5,8 @@ @using System.Text.Encodings.Web @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IUserStore UserStore @@ -17,43 +18,42 @@ Register -Register +

Register

- - +
+
- - Create a new account. - - - - - - - - - - - - - Register - - +

Create a new account.

+
+ +
+ + + +
+
+ + + +
+
+ + + +
+
- - - Use another service to register. - - - +
+
+
+

Use another service to register.

+
+ +
+
+
@code { private IEnumerable? identityErrors; @@ -73,8 +73,9 @@ await UserStore.SetUserNameAsync(user, Input.Email, CancellationToken.None); var emailStore = GetEmailStore(); await emailStore.SetEmailAsync(user, Input.Email, CancellationToken.None); - var result = await UserManager.CreateAsync(user, Input.Password); + await UserManager.AddToRoleAsync(user, "User"); + var result = await UserManager.CreateAsync(user, Input.Password); if (!result.Succeeded) { identityErrors = result.Errors; @@ -103,7 +104,7 @@ RedirectManager.RedirectTo(ReturnUrl); } - private static ApplicationUser CreateUser() + private ApplicationUser CreateUser() { try { diff --git a/OpenArchival.Blazor/Components/Account/Pages/RegisterConfirmation.razor b/OpenArchival.Blazor/Components/Account/Pages/RegisterConfirmation.razor index cf7317f..626bab0 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/RegisterConfirmation.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/RegisterConfirmation.razor @@ -3,7 +3,8 @@ @using System.Text @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IEmailSender EmailSender @@ -19,8 +20,8 @@ @if (emailConfirmationLink is not null) {

- This app does not currently have a real email sender registered, see these docs for how to configure a real email sender. - Normally this would be emailed: Click here to confirm your account + This app does not currently have a real email sender registered, see these docs for how to configure a real email sender. + Normally this would be emailed: Click here to confirm your account

} else diff --git a/OpenArchival.Blazor/Components/Account/Pages/ResendEmailConfirmation.razor b/OpenArchival.Blazor/Components/Account/Pages/ResendEmailConfirmation.razor index 407b07e..a6e3b96 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/ResendEmailConfirmation.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/ResendEmailConfirmation.razor @@ -5,7 +5,8 @@ @using System.Text.Encodings.Web @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject UserManager UserManager @inject IEmailSender EmailSender @@ -14,26 +15,24 @@ Resend email confirmation -Resend email confirmation - -Enter your email. - +

Resend email confirmation

+

Enter your email.

+
- - - - - - - - - - Resend - - - +
+
+ + + +
+ + + +
+ +
+
+
@code { private string? message; diff --git a/OpenArchival.Blazor/Components/Account/Pages/ResetPassword.razor b/OpenArchival.Blazor/Components/Account/Pages/ResetPassword.razor index d2643a5..df42934 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/ResetPassword.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/ResetPassword.razor @@ -4,7 +4,8 @@ @using System.Text @using Microsoft.AspNetCore.Identity @using Microsoft.AspNetCore.WebUtilities -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject IdentityRedirectManager RedirectManager @inject UserManager UserManager @@ -13,7 +14,7 @@

Reset password

Reset your password.

- +
diff --git a/OpenArchival.Blazor/Components/Account/Pages/ResetPasswordConfirmation.razor b/OpenArchival.Blazor/Components/Account/Pages/ResetPasswordConfirmation.razor index 2554ddb..247e96e 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/ResetPasswordConfirmation.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/ResetPasswordConfirmation.razor @@ -3,5 +3,5 @@

Reset password confirmation

- Your password has been reset. Please click here to log in. + Your password has been reset. Please click here to log in.

diff --git a/OpenArchival.Blazor/Components/Account/Pages/_Imports.razor b/OpenArchival.Blazor/Components/Account/Pages/_Imports.razor index 2ec20b6..1643a07 100644 --- a/OpenArchival.Blazor/Components/Account/Pages/_Imports.razor +++ b/OpenArchival.Blazor/Components/Account/Pages/_Imports.razor @@ -1,3 +1,2 @@ -@using MudBlazor -@using OpenArchival.Blazor.Components.Account.Shared +@using OpenArchival.Blazor.Components.Account.Shared @attribute [ExcludeFromInteractiveRouting] diff --git a/OpenArchival.Blazor/Components/Account/Shared/ExternalLoginPicker.razor b/OpenArchival.Blazor/Components/Account/Shared/ExternalLoginPicker.razor index 580ae81..28892f4 100644 --- a/OpenArchival.Blazor/Components/Account/Shared/ExternalLoginPicker.razor +++ b/OpenArchival.Blazor/Components/Account/Shared/ExternalLoginPicker.razor @@ -1,18 +1,19 @@ @using Microsoft.AspNetCore.Authentication @using Microsoft.AspNetCore.Identity -@using MudBlazor -@using OpenArchival.Blazor.Data +@using MyAppName.WebApp.Components.Account +@using OpenArchival.DataAccess @inject SignInManager SignInManager @inject IdentityRedirectManager RedirectManager @if (externalLogins.Length == 0) { - There are no external authentication services configured. - - See this article - about setting up this ASP.NET application to support logging in via external services - +
+

+ There are no external authentication services configured. See this article + about setting up this ASP.NET application to support logging in via external services. +

+
} else { diff --git a/OpenArchival.Blazor/Components/Account/Shared/ManageLayout.razor b/OpenArchival.Blazor/Components/Account/Shared/ManageLayout.razor index 73a19b7..e8113d3 100644 --- a/OpenArchival.Blazor/Components/Account/Shared/ManageLayout.razor +++ b/OpenArchival.Blazor/Components/Account/Shared/ManageLayout.razor @@ -1,14 +1,18 @@ -@inherits LayoutComponentBase -@layout OpenArchival.Blazor.Components.Layout.MainLayout +@using OpenArchival.Blazor.Components.Layout +@inherits LayoutComponentBase +@layout MainLayout -Manage your account +

Manage your account

- - - Change your account settings - - - - @Body - - +
+

Change your account settings

+
+
+
+ +
+
+ @Body +
+
+
diff --git a/OpenArchival.Blazor/Components/Account/Shared/ManageNavMenu.razor b/OpenArchival.Blazor/Components/Account/Shared/ManageNavMenu.razor index 9a0b7be..64808c0 100644 --- a/OpenArchival.Blazor/Components/Account/Shared/ManageNavMenu.razor +++ b/OpenArchival.Blazor/Components/Account/Shared/ManageNavMenu.razor @@ -1,19 +1,31 @@ @using Microsoft.AspNetCore.Identity -@using OpenArchival.Blazor.Data +@using OpenArchival.DataAccess @inject SignInManager SignInManager - - Profile - Email - Password + @code { private bool hasExternalLogins; diff --git a/OpenArchival.Blazor/Components/Account/Shared/StatusMessage.razor b/OpenArchival.Blazor/Components/Account/Shared/StatusMessage.razor index 4c2821d..5b332b0 100644 --- a/OpenArchival.Blazor/Components/Account/Shared/StatusMessage.razor +++ b/OpenArchival.Blazor/Components/Account/Shared/StatusMessage.razor @@ -1,8 +1,10 @@ -@if (!string.IsNullOrEmpty(DisplayMessage)) +@using MyAppName.WebApp.Components.Account +@if (!string.IsNullOrEmpty(DisplayMessage)) { - var severity = DisplayMessage.StartsWith("Error") ? Severity.Error : Severity.Success; - - @DisplayMessage + var statusMessageClass = DisplayMessage.StartsWith("Error") ? "danger" : "success"; + } @code { diff --git a/OpenArchival.Blazor/Components/CustomComponents/UploadDropBox.razor b/OpenArchival.Blazor/Components/CustomComponents/UploadDropBox.razor index 81954e2..fc91d7a 100644 --- a/OpenArchival.Blazor/Components/CustomComponents/UploadDropBox.razor +++ b/OpenArchival.Blazor/Components/CustomComponents/UploadDropBox.razor @@ -1,5 +1,4 @@ @using Microsoft.Extensions.Options -TODO: Handle the case in which there are duplicate file names