diff --git a/Client/Login/login.html b/Client/Login/login.html
index 0bfe5b52..c8aa0a1c 100644
--- a/Client/Login/login.html
+++ b/Client/Login/login.html
@@ -20,7 +20,6 @@
ERROR TEXT
-
@@ -61,7 +59,7 @@
return;
}
- if (password.length < 8) {
+ if (password.length < 8 || passwordRepeat.length < 8) {
showError("Das Passwort muss mindestens 8 Zeichen lang sein");
return;
}
diff --git a/Client/Login/login.js b/Client/Login/login.js
index 2e07b8fa..69670ba6 100644
--- a/Client/Login/login.js
+++ b/Client/Login/login.js
@@ -6,10 +6,16 @@
$('#loginBtn').click(() => {
$('.alert').remove(); //Remove any alerts when we attempt to login/register
- mp.trigger('loginInformationToServer', $('#usernameInputLogin').val(), $('#passwordInputLogin').val());
+ mp.trigger('loginInformationToServer', $('#passwordInputLogin').val());
});
$('#registerBtn').click(() => {
$('.alert').remove(); //Remove any alerts when we attempt to login/register
- mp.trigger('registerInformationToServer', $('#usernameInputRegister').val(), $('#passwordInputRegister').val());
+ if ($('#passwordInputRegister').val().length < 8) {
+ return;
+ }
+ else {
+ mp.trigger('registerInformationToServer', $('#passwordInputRegister').val());
+ }
+
});
\ No newline at end of file
diff --git a/Client/Login/main.js b/Client/Login/main.js
index 23f69481..fd346614 100644
--- a/Client/Login/main.js
+++ b/Client/Login/main.js
@@ -3,8 +3,8 @@
* @author VegaZ
* @copyright (c) 2008 - 2018 Life of German
*/
-var loginBrowser = mp.browsers.new('package://Login/login.html');
-mp.gui.cursor.show(true, true);
+
+let loginBrowser;
mp.events.add('loginInformationToServer', (username, password) => {
@@ -17,3 +17,23 @@ mp.events.add('registerInformationToServer', (username, password) => {
mp.events.callRemote('OnPlayerRegister', username, password);
});
+
+/*
+mp.events.add('browserCreated', (browser) => {
+ mp.gui.chat.push("Browser created");
+ mp.gui.chat.activate(false);
+ mp.gui.cursor.show(true);
+});
+*/
+mp.events.add('showLogin', (player) => {
+ mp.gui.chat.push("show login");
+ loginBrowser = mp.browsers.new('package://Login/login.html');
+});
+
+mp.events.add('registerSuccess', (player) => {
+
+ loginBrowser.destroy();
+ mp.gui.chat.activate(true);
+ player.outputChatBox("Erfolgreich registriert");
+
+});
diff --git a/Server/Entities/User.cs b/Server/Entities/User.cs
index 1f0a934d..5f8532e1 100644
--- a/Server/Entities/User.cs
+++ b/Server/Entities/User.cs
@@ -25,7 +25,8 @@ namespace reallife_gamemode.Server.Entities
[StringLength(64)]
public string Password { get; set; }
public int LogUserId { get; set; }
- public DateTime RegistrationDate { get; set; }
+ [Timestamp]
+ public byte[] RegistrationDate { get; set; }
[EmailAddress]
[StringLength(64)]
public string Email { get; set; }
diff --git a/Server/Events/Login.cs b/Server/Events/Login.cs
index 04ebb9b0..c4db02ee 100644
--- a/Server/Events/Login.cs
+++ b/Server/Events/Login.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using GTANetworkAPI;
+using System.Security.Cryptography;
/**
* @overview Life of German Reallife - Event Login (Login.cs)
@@ -14,15 +15,46 @@ namespace reallife_gamemode.Server.Events
public class Login : Script
{
[RemoteEvent("OnPlayerLogin")]
- public void OnPlayerLogin(Client player, string username, string password)
+ public void OnPlayerLogin(Client player, string password)
{
}
-
- [RemoteEvent("OnPlayerRegister")]
- public void OnPlayerRegister(Client player, string username, string password)
+ [Command("login")]
+ public void CmdLogin(Client player)
{
-
+ player.Freeze(true);
+ player.TriggerEvent("showLogin",player);
+ }
+ [RemoteEvent("OnPlayerRegister")]
+ public void OnPlayerRegister(Client player, string password)
+ {
+
+ using (var loginContext = new Model.DatabaseContext())
+ {
+ var user = new Entities.User { Name = player.Name, SocialClubName = player.SocialClubName, Password = ComputeSha256Hash(password) };
+ loginContext.Users.Add(user);
+ loginContext.SaveChanges();
+ }
+ NAPI.Chat.SendChatMessageToPlayer(player, "Registriert, GZ");
+ player.TriggerEvent("registerSuccess");
+ }
+
+ static string ComputeSha256Hash(string rawData)
+ {
+ // Create a SHA256
+ using (SHA256 sha256Hash = SHA256.Create())
+ {
+ // ComputeHash - returns byte array
+ byte[] bytes = sha256Hash.ComputeHash(Encoding.UTF8.GetBytes(rawData));
+
+ // Convert byte array to a string
+ StringBuilder builder = new StringBuilder();
+ for (int i = 0; i < bytes.Length; i++)
+ {
+ builder.Append(bytes[i].ToString("x2"));
+ }
+ return builder.ToString();
+ }
}
}
}
diff --git a/Server/Services/HashService.cs b/Server/Services/HashService.cs
new file mode 100644
index 00000000..ae5c3a09
--- /dev/null
+++ b/Server/Services/HashService.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Security.Cryptography;
+
+/**
+* @overview Life of German Reallife - Event Login (Login.cs)
+* @author VegaZ
+* @copyright (c) 2008 - 2018 Life of German
+*/
+
+namespace reallife_gamemode.Server.Services
+{
+ class HashService
+ {
+
+ }
+}