@page "/sys/you" @using ImageBoardServerApp.Auth @using ImageBoardServerApp.Data.Repository @inject AuthenticationStateProvider authStateProvider @inject NavigationManager navManager YOU - Bulletboards

YOUR ACCOUNT


Email: @userid



@if (msg != null) {
@msg
}


[Click here to change your password]

[Logout]
You are not logged in. Please login first.
@code { private string userid { get; set; } = ""; private string newMail { get; set; } private string msg { get; set; } private UserData u { get; set; } private string isMailConfirmedMsg { get; set; } protected override async Task OnInitializedAsync() { var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider; var user = await cauthStateProvder.GetAuthenticationStateAsync(); if (user.User.Identity.IsAuthenticated) { userid = user.User.Identity.Name; } } private async Task changeEmail() { var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider; var user = await cauthStateProvder.GetAuthenticationStateAsync(); var usr = user.User; UserData foundusr = await UsersRepository.getUserByEmailRawAsync(usr.Identity.Name); if (foundusr == null) { msg = "Could not find user."; return; } if (newMail == null || newMail == "" || !newMail.Contains("@") || !newMail.Contains(".")) { msg = "The new email is not valid."; return; } UserData u2 = await UsersRepository.getUserByEmailRawAsync(newMail); if (u2 != null) { msg = "This email is already in use."; return; } foundusr.Email = newMail; foundusr.lastActionTimeStamp = DateTimeOffset.Now.ToUnixTimeMilliseconds(); foundusr.ConfirmedEmail = false; await UsersRepository.updateUserAsync(foundusr); } protected override async Task OnAfterRenderAsync(bool firstRender) { var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider; var user = await cauthStateProvder.GetAuthenticationStateAsync(); var usr = user.User; u = await UsersRepository.getUserByEmailRawAsync(usr.Identity.Name); isMailConfirmedMsg = u.ConfirmedEmail ? "Email is confirmed" : "Email is NOT confirmed"; await base.OnAfterRenderAsync(firstRender); } }