diff --git a/SS14.Auth.Shared/Data/SpaceUser.cs b/SS14.Auth.Shared/Data/SpaceUser.cs index 454c0e3..3b158c7 100644 --- a/SS14.Auth.Shared/Data/SpaceUser.cs +++ b/SS14.Auth.Shared/Data/SpaceUser.cs @@ -130,6 +130,7 @@ public sealed record AccountLogCreated : AccountLogEntry; public sealed record AccountLogEmailConfirmedChanged(bool NewConfirmed) : AccountLogEntry; public sealed record AccountLogEmailChanged(string OldEmail, string NewEmail) : AccountLogEntry; +public sealed record AccountLogEmailChangeRequested(string OldEmail, string NewEmail) : AccountLogEntry; public sealed record AccountLogUserNameChanged(string NewName, string OldName) : AccountLogEntry; public sealed record AccountLogHubAdminChanged(bool NewAdmin) : AccountLogEntry; public sealed record AccountLogPasswordChanged : AccountLogEntry; @@ -148,6 +149,7 @@ public sealed record AccountLogAuthRoleRemoved(Guid Role) : AccountLogEntry; public sealed record AccountLogCreatedReserved : AccountLogEntry; +[UsedImplicitly] public enum AccountLogType { // @formatter:off @@ -218,6 +220,10 @@ public enum AccountLogType [AuditEntryType(typeof(AccountLogCreatedReserved))] [AccountLogRetention(AccountLogRetainType.AccountManagement)] CreatedReserved = 16, + + [AuditEntryType(typeof(AccountLogEmailChangeRequested))] + [AccountLogRetention(AccountLogRetainType.AccountManagement)] + EmailChangeRequested = 17, // @formatter:on } diff --git a/SS14.Web/Areas/Identity/Pages/Account/Manage/Email.cshtml.cs b/SS14.Web/Areas/Identity/Pages/Account/Manage/Email.cshtml.cs index 0749516..15349d5 100644 --- a/SS14.Web/Areas/Identity/Pages/Account/Manage/Email.cshtml.cs +++ b/SS14.Web/Areas/Identity/Pages/Account/Manage/Email.cshtml.cs @@ -6,7 +6,6 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.AspNetCore.WebUtilities; -using SS14.Auth.Shared; using SS14.Auth.Shared.Data; using SS14.Auth.Shared.Emails; @@ -17,15 +16,18 @@ public partial class EmailModel : PageModel private readonly UserManager _userManager; private readonly SignInManager _signInManager; private readonly IEmailSender _emailSender; + private readonly AccountLogManager _logManager; public EmailModel( UserManager userManager, SignInManager signInManager, - IEmailSender emailSender) + IEmailSender emailSender, + AccountLogManager logManager) { _userManager = userManager; _signInManager = signInManager; _emailSender = emailSender; + _logManager = logManager; } public string Username { get; set; } @@ -102,6 +104,7 @@ await _emailSender.SendEmailAsync( Input.NewEmail, "Confirm your email", $"Please confirm your account by clicking here."); + await _logManager.LogAndSave(user, new AccountLogEmailChangeRequested(email, Input.NewEmail)); StatusMessage = "Confirmation link to change email sent. Please check your email."; return RedirectToPage(); @@ -142,4 +145,4 @@ await _emailSender.SendEmailAsync( StatusMessage = "Verification email sent. Please check your email."; return RedirectToPage(); } -} \ No newline at end of file +}