From 08adf8d7527e0b8bf0f7440c43713022be33cc4c Mon Sep 17 00:00:00 2001 From: VegaZ Date: Thu, 20 Sep 2018 20:20:44 +0200 Subject: [PATCH] Finish login-register-system --- Client/Login/main.js | 22 ++++++++++---- Server/Events/Login.cs | 69 +++++++++++++++++++++++++----------------- 2 files changed, 58 insertions(+), 33 deletions(-) diff --git a/Client/Login/main.js b/Client/Login/main.js index 03ea055c..b10cf16e 100644 --- a/Client/Login/main.js +++ b/Client/Login/main.js @@ -9,7 +9,6 @@ loginBrowser = mp.browsers.new('package://Login/login.html'); mp.gui.chat.activate(false); mp.gui.cursor.show(true); - mp.events.add('loginInformationToServer', (password) => { mp.events.callRemote('OnPlayerLogin', password); @@ -21,11 +20,6 @@ mp.events.add('registerInformationToServer', (password) => { }); -mp.events.add('showLogin',() => { - loginBrowser = mp.browsers.new('package://Login/login.html'); - mp.gui.cursor.show(true); -}); - mp.events.add('registerSuccess', () => { mp.gui.chat.push("Erfolgreich registriert!") if (loginBrowser) @@ -52,3 +46,19 @@ mp.events.add('loginFail', (reason) => { mp.gui.chat.push(reason); }); + +mp.events.add('loginDeny', (reason) => { + if (loginBrowser) { + loginBrowser.destroy(); + } + mp.gui.cursor.show(false); + mp.gui.chat.activate(true); + mp.gui.chat.push(reason); + +}); + +mp.events.add('registerFail', (reason) => { + + mp.gui.chat.push(reason); + +}); diff --git a/Server/Events/Login.cs b/Server/Events/Login.cs index 0400150f..5877a0b3 100644 --- a/Server/Events/Login.cs +++ b/Server/Events/Login.cs @@ -17,44 +17,59 @@ namespace reallife_gamemode.Server.Events [RemoteEvent("OnPlayerLogin")] public void OnPlayerLogin(Client player, string password) { - string checkPassword = null; - using (var loginContext = new Model.DatabaseContext()) + using (var loginUser = new Model.DatabaseContext()) { - var user = loginContext.Users.SingleOrDefault(b => b.Name == player.Name); - if(user.Password == null) + var user = loginUser.Users.SingleOrDefault(b => b.Name == player.Name); + + if(user == null) { player.TriggerEvent("loginFail", "Benutzer existiert nicht! Registriere dich zuerst!"); } else { - checkPassword = user.Password; - } - } - if(checkPassword == NAPI.Util.GetHashSha256(password)) - { - player.TriggerEvent("loginSuccess"); - } - else - { - player.TriggerEvent("loginFail","Passwort inkorrekt!"); - } - } - [Command("login")] - public void CmdLogin(Client player) - { - player.TriggerEvent("showLogin",player); + if (user.SocialClubName != player.SocialClubName && user.Password == NAPI.Util.GetHashSha256(password)) + { + player.TriggerEvent("loginDeny", "Dieser Benutzer gehört dir nicht!"); + //Log einbauen für den bösen Bub. + player.Kick(); + } + if (user.Password != NAPI.Util.GetHashSha256(password)) + { + player.TriggerEvent("loginFail", "Passwort inkorrekt!"); + } + else + { + player.TriggerEvent("loginSuccess"); + } + } + } } + [RemoteEvent("OnPlayerRegister")] public void OnPlayerRegister(Client player, string password) { - - using (var registerContext = new Model.DatabaseContext()) + using (var checkUser = new Model.DatabaseContext()) { - var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = NAPI.Util.GetHashSha256(password) }; - registerContext.Users.Add(user); - registerContext.SaveChanges(); - } - player.TriggerEvent("registerSuccess"); + var checkedUser = checkUser.Users.SingleOrDefault(b => b.Name == player.Name); + if(checkedUser == null) + { + using (var registerUser = new Model.DatabaseContext()) + { + var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = NAPI.Util.GetHashSha256(password) }; + registerUser.Users.Add(user); + registerUser.SaveChanges(); + } + player.TriggerEvent("registerSuccess"); + } + else if (player.SocialClubName == checkedUser.SocialClubName) + { + player.TriggerEvent("registerFail", "Dieser SocialClubAccount ist schon registriert!"); + } + else if (checkedUser.Name == player.Name) + { + player.TriggerEvent("registerFail", "Benutzername existiert schon!"); + } + } } } }