Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion SS14.Web/Areas/Identity/Pages/Account/Manage/Index.cshtml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@

<h4>@ViewData["Title"]</h4>
<partial name="_StatusMessage" model="Model.StatusMessage"/>
<div class="row">
<div class="col-md-6">
<h5>Profile details</h5>
</div>
</div>
<p>This account was created on
@TimeZoneInfo.ConvertTimeFromUtc(Model.CreatedTime.DateTime, TimeZoneInfo.Local).ToString("MMMM d, yyyy h:mm tt zzz")
<div class="row">
<div class="col-md-6">
<h5>Username</h5>
Expand Down Expand Up @@ -37,4 +44,4 @@

@section Scripts {
<partial name="_ValidationScriptsPartial"/>
}
}
16 changes: 9 additions & 7 deletions SS14.Web/Areas/Identity/Pages/Account/Manage/Index.cshtml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,11 @@ public partial class IndexModel : PageModel
public bool CanEditUsername { get; set; }
public int UsernameChangeDelay => _options.Value.UsernameChangeDays;
public DateTime NextUsernameChangeAllowed { get; set; }
public DateTimeOffset CreatedTime { get; set; }

public IndexModel(
SpaceUserManager userManager,
SignInManager<SpaceUser> signInManager,
SignInManager<SpaceUser> signInManager,
IOptions<AccountOptions> options,
ApplicationDbContext dbContext,
AccountLogManager accountLogManager)
Expand All @@ -44,6 +45,7 @@ private async Task LoadAsync(SpaceUser user)
var userName = await _userManager.GetUserNameAsync(user);

Username = userName;
CreatedTime = user.CreatedTime;
UpdateCanEditUsername(user);
}

Expand Down Expand Up @@ -88,13 +90,13 @@ public async Task<IActionResult> OnPostUsernameAsync()
await LoadAsync(user);
return Page();
}

Username = Username.Trim();
if (Username == user.UserName)
{
return RedirectToPage();
}

UpdateCanEditUsername(user);
if (!CanEditUsername)
{
Expand All @@ -107,7 +109,7 @@ public async Task<IActionResult> OnPostUsernameAsync()
await using var tx = await _dbContext.Database.BeginTransactionAsync();

var result = await _userManager.SetUserNameAsync(user, Username);

if (!result.Succeeded)
{
foreach (var error in result.Errors)
Expand All @@ -118,17 +120,17 @@ public async Task<IActionResult> OnPostUsernameAsync()
await LoadAsync(user);
return Page();
}

user.LastUsernameChange = DateTime.UtcNow;

await _accountLogManager.LogNameChanged(user, oldName, user.UserName);

await _signInManager.RefreshSignInAsync(user);
StatusMessage = "Your username has been changed. Note that it may take some time to visibly update in some places, such as the launcher.";

await _dbContext.SaveChangesAsync();
await tx.CommitAsync();

return RedirectToPage();
}
}
}