Added User Page
This commit is contained in:
@@ -49,17 +49,18 @@
|
||||
</div>
|
||||
<div class="mx-2">@LoginService.LoggedUser?.Username</div>
|
||||
<div class="btn-group">
|
||||
<button class="btn btn-lg btn-outline-light" type="button">
|
||||
<button class="btn btn-outline-light" type="button">
|
||||
<i class="bi bi-person-circle"></i>
|
||||
</button>
|
||||
<button class="btn btn-lg btn-outline-light dropdown-toggle dropdown-toggle-split"
|
||||
<button class="btn btn-outline-light dropdown-toggle dropdown-toggle-split"
|
||||
data-bs-toggle="dropdown"></button>
|
||||
<ul class="dropdown-menu dropdown-menu-end">
|
||||
<li><a class="dropdown-item" href="#"><i class="bi bi-person-lines-fill"></i> Profile</a>
|
||||
</li>
|
||||
<li><a class="dropdown-item" @onclick="OnProfileClick"><i class="bi bi-person-lines-fill"></i> Profile</a></li>
|
||||
@if (Admin) {
|
||||
<li><a class="dropdown-item" @onclick="OnSettingsClick"><i
|
||||
class="bi bi-gear-wide-connected"></i> Settings</a></li>
|
||||
<li><a class="dropdown-item" @onclick="OnSettings1Click"><i
|
||||
class="bi bi-gear-wide-connected"></i> Settings 1</a></li>
|
||||
<li><a class="dropdown-item" @onclick="OnJobsClick"><i class="bi bi-kanban-fill"></i>
|
||||
Jobs</a></li>
|
||||
}
|
||||
@@ -80,8 +81,8 @@
|
||||
bool needsUpdate;
|
||||
|
||||
protected async override Task OnInitializedAsync() {
|
||||
await base.OnInitializedAsync();
|
||||
LoginService.LoggedUserChanged += (_, _) => needsUpdate = true;
|
||||
await base.OnInitializedAsync();
|
||||
//await LoadStateAsync();
|
||||
}
|
||||
|
||||
@@ -121,4 +122,8 @@
|
||||
Navigation.NavigateTo("/", true);
|
||||
}
|
||||
|
||||
void OnSettings1Click() => Navigation.NavigateTo("/Settings1");
|
||||
|
||||
void OnProfileClick() => Navigation.NavigateTo($"/User/{LoginService.AuthInfo?.UserId}", true);
|
||||
|
||||
}
|
||||
62
MilkStream/Components/Pages/User.razor
Normal file
62
MilkStream/Components/Pages/User.razor
Normal file
@@ -0,0 +1,62 @@
|
||||
@page "/User/{UserId:guid}"
|
||||
@using Butter.Dtos.User
|
||||
@using Butter.Types
|
||||
@using MilkStream.Services
|
||||
@inject LoginService LoginService
|
||||
@inject UserService UserService
|
||||
|
||||
<h3>@(user?.Username ?? "Username")</h3>
|
||||
|
||||
|
||||
<div class="row">
|
||||
@if (isSelf || adminAccess) {
|
||||
<div class="col-2"><i class="bi bi-envelope-at"></i> EMail:</div>
|
||||
<div class="col-2">@user?.Email</div>
|
||||
}
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-2"><i class="bi bi-person-fill-lock"></i> Role:</div>
|
||||
<div class="col-2">@user?.AccessLevel.ToString()</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-2"><i class="bi bi-calendar-date"></i> Creation Date:</div>
|
||||
<div class="col-2">@user?.CreatedAt</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-2"><i class="bi bi-door-open"></i> Last Login:</div>
|
||||
<div class="col-2">@(user?.LastLogin.ToString() ?? "Never")</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-2"><i class="bi bi-ban"></i>Banned:</div>
|
||||
<div class="col-2">@(user is {IsBanned: true} ? $"Yes ({user.BannedAt.ToString()})" : "No")</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
@if (adminAccess) {
|
||||
<div class="col-2"><i class="bi bi-trash3"></i>Deleted:</div>
|
||||
<div class="col-2">@(user is not {DeletedAt: null} ? user!.DeletedAt.ToString() : "No")</div>
|
||||
}
|
||||
</div>
|
||||
|
||||
|
||||
@code {
|
||||
|
||||
[Parameter]
|
||||
public Guid UserId { get; set; }
|
||||
|
||||
bool isSelf;
|
||||
bool adminAccess => LoginService.LoggedUser?.AccessLevel == EAccessLevel.Admin;
|
||||
UserInfoDto? user;
|
||||
|
||||
protected async override Task OnInitializedAsync() {
|
||||
await base.OnInitializedAsync();
|
||||
if (LoginService.IsLoggedIn) await LoadUser();
|
||||
LoginService.AuthInfoChanged += (sender, info) => LoadUser();
|
||||
}
|
||||
|
||||
async Task LoadUser() {
|
||||
if (UserId == LoginService.AuthInfo?.UserId) isSelf = true;
|
||||
user = await UserService.GetUserAsync();
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user