From edca8fb965b3287cb45134e65a807beb01cce33e Mon Sep 17 00:00:00 2001 From: Taarly Date: Mon, 19 May 2025 16:24:05 +0200 Subject: [PATCH] login now works --- Project.Controller/AppController.cs | 5 +++-- Project.Persistence/SQLite2.cs | 8 +++++--- Project.View/Login Page/LoginPage.axaml.cs | 13 ++++++++++++- Project.View/MenuView/MenuView.axaml.cs | 2 +- 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/Project.Controller/AppController.cs b/Project.Controller/AppController.cs index 0b4a883..c0224de 100644 --- a/Project.Controller/AppController.cs +++ b/Project.Controller/AppController.cs @@ -12,10 +12,11 @@ public partial class AppController 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 Username = username; - SQLite.GetLogin(Username, hashedPassword); + var savedPassword = SQLite.GetLogin(Username); + return hashedPassword == savedPassword; } } diff --git a/Project.Persistence/SQLite2.cs b/Project.Persistence/SQLite2.cs index e310d83..81cfa63 100644 --- a/Project.Persistence/SQLite2.cs +++ b/Project.Persistence/SQLite2.cs @@ -5,17 +5,19 @@ namespace Project.Persistence; public partial class SQLite { //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}"); connection.Open(); using (var command = connection.CreateCommand()) { command.Parameters.AddWithValue("@loginname", username); - command.Parameters.AddWithValue("@loginpass", password); + //command.Parameters.AddWithValue("@loginpass", password); command.CommandText = - @"SELECT * FROM TABLE ( LOGINS ) WHERE loginname = @loginname + @"SELECT loginpass FROM LOGINS WHERE loginname = @loginname "; + var result = command.ExecuteScalar(); + return result?.ToString(); } } } \ No newline at end of file diff --git a/Project.View/Login Page/LoginPage.axaml.cs b/Project.View/Login Page/LoginPage.axaml.cs index da32d71..1580e0c 100644 --- a/Project.View/Login Page/LoginPage.axaml.cs +++ b/Project.View/Login Page/LoginPage.axaml.cs @@ -2,6 +2,7 @@ using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Media; using Project.Controller; +using Project.View; namespace Project.View; @@ -22,7 +23,17 @@ public partial class LoginPage : UserControl { string? loginName = LoginNameBox.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) { diff --git a/Project.View/MenuView/MenuView.axaml.cs b/Project.View/MenuView/MenuView.axaml.cs index 57ba4f3..aa1dc80 100644 --- a/Project.View/MenuView/MenuView.axaml.cs +++ b/Project.View/MenuView/MenuView.axaml.cs @@ -5,7 +5,7 @@ using Project.Controller; namespace Project.View; -public partial class MenuView : UserControl +public partial class MenuView : Window { readonly AppController? _controller; public MenuView()