feat: added User Screen for admins
This commit is contained in:
parent
0279df06fa
commit
df1ac86636
11 changed files with 163 additions and 31 deletions
|
@ -1,6 +1,90 @@
|
|||
@page "/sys/you"
|
||||
<h3>UserPage</h3>
|
||||
@using ImageBoardServerApp.Auth
|
||||
@using ImageBoardServerApp.Data.Repository
|
||||
@inject AuthenticationStateProvider authStateProvider
|
||||
@inject NavigationManager navManager
|
||||
|
||||
<AuthorizeView>
|
||||
<Authorized>
|
||||
<h3>YOU</h3>
|
||||
<br/>
|
||||
<span>Email: @mail</span>
|
||||
<br/>
|
||||
<span>Email: </span>
|
||||
<input type="email" id="email" @bind="newMail" />
|
||||
<a @onclick="changeEmail" href="javascript:void(0)">[Change Email]</a>
|
||||
<br/>
|
||||
<span>Password: </span>
|
||||
<input type="password" id="password" @bind="newPassword" />
|
||||
<a @onclick="changePassword" href="javascript:void(0)">[Change Password]</a>
|
||||
<br/>
|
||||
<a @onclick="logout" href="javascript:void(0)">[Logout]</a>
|
||||
</Authorized>
|
||||
<NotAuthorized>
|
||||
<span>You are not logged in.</span>
|
||||
<a class="navbar-brand" href="/sys/login">Please login first.</a>
|
||||
</NotAuthorized>
|
||||
</AuthorizeView>
|
||||
@code {
|
||||
|
||||
private string mail { get; set; } = "";
|
||||
private string newMail { get; set; }
|
||||
private string newPassword { get; set; }
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider;
|
||||
var user = await cauthStateProvder.GetAuthenticationStateAsync();
|
||||
if (user.User.Identity.IsAuthenticated)
|
||||
{
|
||||
mail = user.User.Identity.Name;
|
||||
}
|
||||
}
|
||||
|
||||
private async Task logout()
|
||||
{
|
||||
var customAuthStateProvider = (CustomAuthenticationStateProvider) authStateProvider;
|
||||
await customAuthStateProvider.UpdateAuthenticationStateAsync(null);
|
||||
navManager.NavigateTo("/", true);
|
||||
}
|
||||
|
||||
private async Task changeEmail()
|
||||
{
|
||||
var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider;
|
||||
var user = await cauthStateProvder.GetAuthenticationStateAsync();
|
||||
var usr = user.User;
|
||||
UserData foundusr = await UsersRepository.getUserByEmailAsync(usr.Identity.Name);
|
||||
if (foundusr == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int userID = foundusr.UserID;
|
||||
if (newMail == null || newMail == "" || !newMail.Contains("@"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
foundusr.Email = newMail;
|
||||
foundusr.lastActionTimeStamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
await UsersRepository.updateUserAsync(foundusr);
|
||||
}
|
||||
|
||||
private async Task changePassword()
|
||||
{
|
||||
var cauthStateProvder = (CustomAuthenticationStateProvider)authStateProvider;
|
||||
var user = await cauthStateProvder.GetAuthenticationStateAsync();
|
||||
var usr = user.User;
|
||||
UserData foundusr = await UsersRepository.getUserByEmailAsync(usr.Identity.Name);
|
||||
if (foundusr == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
int userID = foundusr.UserID;
|
||||
if (newPassword == null || newPassword == "")
|
||||
{
|
||||
return;
|
||||
}
|
||||
foundusr.Password = BCrypt.Net.BCrypt.HashPassword(newPassword);
|
||||
foundusr.lastActionTimeStamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
await UsersRepository.updateUserAsync(foundusr);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue