login now works

This commit is contained in:
Taarly 2025-05-19 16:24:05 +02:00
parent 3142183cee
commit edca8fb965
4 changed files with 21 additions and 7 deletions

View File

@ -12,10 +12,11 @@ public partial class AppController
SQLite.SaveUser(user); SQLite.SaveUser(user);
} }
public static void CompareLogin(string username, string password) public static bool CompareLogin(string username, string password)
{ {
string hashedPassword = ShaHash.HashPassword(password); string hashedPassword = ShaHash.HashPassword(password);
string Username = username; string Username = username;
SQLite.GetLogin(Username, hashedPassword); var savedPassword = SQLite.GetLogin(Username);
return hashedPassword == savedPassword;
} }
} }

View File

@ -5,17 +5,19 @@ namespace Project.Persistence;
public partial class SQLite public partial class SQLite
{ {
//get login name and password to compare it with inputs //get login name and password to compare it with inputs
public static void GetLogin(string username, string password) public static string? GetLogin(string username)
{ {
using var connection = new SqliteConnection($"Data Source={_dbPath}"); using var connection = new SqliteConnection($"Data Source={_dbPath}");
connection.Open(); connection.Open();
using (var command = connection.CreateCommand()) using (var command = connection.CreateCommand())
{ {
command.Parameters.AddWithValue("@loginname", username); command.Parameters.AddWithValue("@loginname", username);
command.Parameters.AddWithValue("@loginpass", password); //command.Parameters.AddWithValue("@loginpass", password);
command.CommandText = command.CommandText =
@"SELECT * FROM TABLE ( LOGINS ) WHERE loginname = @loginname @"SELECT loginpass FROM LOGINS WHERE loginname = @loginname
"; ";
var result = command.ExecuteScalar();
return result?.ToString();
} }
} }
} }

View File

@ -2,6 +2,7 @@ using Avalonia.Controls;
using Avalonia.Interactivity; using Avalonia.Interactivity;
using Avalonia.Media; using Avalonia.Media;
using Project.Controller; using Project.Controller;
using Project.View;
namespace Project.View; namespace Project.View;
@ -22,7 +23,17 @@ public partial class LoginPage : UserControl
{ {
string? loginName = LoginNameBox.Text ?? string.Empty; string? loginName = LoginNameBox.Text ?? string.Empty;
string? loginPassword = LoginPasswordBox.Text ?? string.Empty; string? loginPassword = LoginPasswordBox.Text ?? string.Empty;
AppController.CompareLogin(loginName, loginPassword); bool allowLogin = AppController.CompareLogin(loginName, loginPassword);
var newMenuView = new MenuView();
var newPopUp = new PopUp();
if (allowLogin)
{
newMenuView.Show();
}
else
{
newPopUp.Show();
}
} }
private async void NewUserButtonOnClick(object? sender, Avalonia.Interactivity.RoutedEventArgs e) private async void NewUserButtonOnClick(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{ {

View File

@ -5,7 +5,7 @@ using Project.Controller;
namespace Project.View; namespace Project.View;
public partial class MenuView : UserControl public partial class MenuView : Window
{ {
readonly AppController? _controller; readonly AppController? _controller;
public MenuView() public MenuView()