@page "/login" @using Microsoft.AspNetCore.Authorization @using OrdersManagement.Models @using Syncfusion.Blazor.Inputs @using Syncfusion.Blazor.Buttons @using Syncfusion.Blazor.Cards @inject UserService UserService @inject NavigationManager NavigationManager

Logowanie

@if (!string.IsNullOrEmpty(TempPassword)) {
Twoje tymczasowe hasło to: @TempPassword. Użyj go do pierwszego logowania.
}
Zaloguj
@if (!string.IsNullOrEmpty(ErrorMessage)) {
@ErrorMessage
}
@if (ShowChangePassword) {
Zmień hasło
Zmień hasło
}
FA Krosno Manager © @(DateTime.Now.Year)
@code { private LoginModel LoginModel { get; set; } = new(); private ChangePasswordModel ChangePasswordModel { get; set; } = new(); private bool ShowChangePassword { get; set; } private string TempPassword { get; set; } private string ErrorMessage { get; set; } protected override void OnInitialized() { TempPassword = NavigationManager.Uri.Split('?').Length > 1 ? Uri.UnescapeDataString(NavigationManager.Uri.Split('=')[1]) : null; } private async Task HandleLogin() { try { Console.WriteLine($"Próba logowania dla: {LoginModel.Login}"); var user = await UserService.AuthenticateUserAsync(LoginModel.Login, LoginModel.Password); if (user != null) { Console.WriteLine($"Użytkownik {user.Login} znaleziony."); if (user.IsTemporaryPassword) { ShowChangePassword = true; StateHasChanged(); } else { NavigationManager.NavigateTo("/ScheduleOrders"); } } else { ErrorMessage = "Nieprawidłowy login lub hasło"; Console.WriteLine(ErrorMessage); StateHasChanged(); } } catch (Exception ex) { ErrorMessage = $"Błąd logowania: {ex.Message}"; Console.WriteLine(ErrorMessage); StateHasChanged(); } } private async Task HandleChangePassword() { try { if (ChangePasswordModel.NewPassword == ChangePasswordModel.ConfirmPassword) { var user = await UserService.GetUserByUsernameAsync(LoginModel.Login); if (user != null) { user.PasswordHash = BCrypt.Net.BCrypt.HashPassword(ChangePasswordModel.NewPassword); user.IsTemporaryPassword = false; await UserService.UpdateUserAsync(user); ShowChangePassword = false; LoginModel = new LoginModel(); StateHasChanged(); NavigationManager.NavigateTo("/login"); } } else { ErrorMessage = "Hasła nie są zgodne"; StateHasChanged(); } } catch (Exception ex) { ErrorMessage = $"Błąd zmiany hasła: {ex.Message}"; StateHasChanged(); } } }