@page "/admin/UsersManager" @using System.Security.Claims @using Microsoft.AspNetCore.Authorization @using OrdersManagementDataModel.Dtos @using Syncfusion.Blazor.Grids @using Action = Syncfusion.Blazor.Grids.Action @using UserService = OrdersManagement.Services.UserService @using Syncfusion.Blazor.Cards @using Syncfusion.Blazor.Popups @using Syncfusion.Blazor.Buttons @inject UserService UserService @inject RoleService RoleService @inject FunctionService FunctionService @inject NavigationManager NavigationManager @inject CustomAuthenticationStateProvider CustomAuthenticationStateProvider

Zarządzanie Użytkownikami i Rolami

Użytkownicy
Role
Funkcje

Użytkownik @Login został dodany pomyślnie!

Hasło tymczasowe: @TempPassword

FA Krosno Manager © @(DateTime.Now.Year)
@code { private List UserList { get; set; } = new(); private List Roles { get; set; } = new(); private List Functions { get; set; } = new(); private bool Visibility { get; set; } private string Login { get; set; } = string.Empty; private string TempPassword { get; set; } = string.Empty; protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { Visibility = false; // ClaimsPrincipal currentUser = CustomAuthenticationStateProvider.GetCurrentUser(); // // if (currentUser.Identity?.IsAuthenticated == false || currentUser.Identity?.Name != "pkus") // { // NavigationManager.NavigateTo("/Unauthorized"); // } // else // { await LoadUsers(); await LoadRoles(); //await LoadFunctions(); StateHasChanged(); // } } } private async Task LoadUsers() { UserList = (await UserService.GetUsersAsync() ?? Array.Empty()).ToList(); } private async Task LoadRoles() { Roles = (await RoleService.GetRolesAsync() ?? Array.Empty()).ToList(); } private async Task LoadFunctions() { Functions = (await FunctionService.GetFunctionsAsync() ?? Array.Empty()).ToList(); } public async Task ResetPassword(UserDto? user) { if(user == null) return; TempPassword = Guid.NewGuid().ToString().Substring(0, 8); Login = user.Login; string passwordHash = BCrypt.Net.BCrypt.HashPassword(TempPassword); user.PasswordHash = passwordHash; user.IsTemporaryPassword = true; await UserService.UpdateUserAsync(user); await LoadUsers(); Visibility = true; } private async Task UserActionBegin(ActionEventArgs args) { switch (args.RequestType) { case Action.Delete: await UserService.DeleteUserAsync(args.Data.RowPointer); break; case Action.Add: args.Data.RowPointer = Guid.NewGuid(); args.Data.CreatedDate = DateTime.Now; args.Data.IsActive = true; break; } } private async Task UserActionComplete(ActionEventArgs args) { switch (args.RequestType) { case Action.Delete: await LoadUsers(); break; case Action.Save when args.Data.Id == 0: UserDto? user = args.Data; TempPassword = Guid.NewGuid().ToString().Substring(0, 8); Login = user.Login; string? passwordHash = BCrypt.Net.BCrypt.HashPassword(TempPassword); user.PasswordHash = passwordHash; user.IsTemporaryPassword = true; user.ActiveFrom = DateTime.Now; user.CreatedDate = DateTime.Now; await UserService.AddUserAsync(user); await LoadUsers(); Visibility = true; break; case Action.Save when args.Data.Id != 0: await UserService.UpdateUserAsync(args.Data); await LoadUsers(); break; } } private async Task RoleActionBegin(ActionEventArgs args) { if (args.RequestType.Equals(Action.Delete)) { await RoleService.DeleteRoleAsync(args.Data.RowPointer); } else if (args.RequestType.Equals(Action.Add)) { args.Data.RowPointer = Guid.NewGuid(); } } private async Task RoleActionComplete(ActionEventArgs args) { switch (args.RequestType) { case Action.Delete: await LoadRoles(); break; case Action.Save when args.Data.Id == 0: await RoleService.AddRoleAsync(args.Data); await LoadUsers(); break; case Action.Save when args.Data.Id != 0: await RoleService.UpdateRoleAsync(args.Data); await LoadRoles(); break; } } private async Task FunctionActionBegin(ActionEventArgs args) { if (args.RequestType.Equals(Action.Delete)) { await FunctionService.DeleteFunctionAsync(args.Data.RowPointer); } else if (args.RequestType.Equals(Action.Add)) { args.Data.RowPointer = Guid.NewGuid(); } } private async Task FunctionActionComplete(ActionEventArgs args) { switch (args.RequestType) { case Action.Delete: await LoadFunctions(); break; case Action.Save when args.Data.Id == 0: await FunctionService.AddFunctionAsync(args.Data); await LoadFunctions(); break; case Action.Save when args.Data.Id != 0: await FunctionService.UpdateFunctionAsync(args.Data); await LoadFunctions(); break; } } private void HideModal() { Visibility = false; } }