/// <summary> /// Registrieren eines Benutzers /// </summary> /// <param name="user">Der zu prüfende JSON-String</param> /// <returns>Neuer Content der angezeigt werden darf</returns> public static ContentFileManager Register(string nickname) { var serializer = new JavaScriptSerializer(); //stop point set here DataClasses.User userObject = serializer.Deserialize <DataClasses.User>(nickname); ContentFileManager outPut = new ContentFileManager(); //TODO: Prüfen ob der Benutzer valide Werte eingegeben hat. Dies muss auf mehreren Seiten geschehen. //TODO: Prüfen im Content ob Valide eingaben getätigt wurden //TODO: Prüfen im Code ob die Eingaben Valide sind using (var entities = new Vape4LifeEntities()) { if (entities.users.Any(e => e.Email.ToLower().Equals(userObject.Email.ToLower()) || e.Nickname.ToLower().Equals(userObject.NickName.ToLower()))) { //TODO: Meldung anzeigen, dass email oder Benutzer schon existieren. } else { var u = entities.users.Create <user>(); u.Email = userObject.Email; u.Lastname = userObject.LastName ?? string.Empty; u.Name = userObject.Name ?? string.Empty; u.Nickname = userObject.NickName ?? string.Empty; u.Password = sha256_hash(userObject.Password); entities.users.Add(u); entities.SaveChanges(); outPut = new ContentFileManager("Register"); SendMail(userObject); } } return(outPut); }
/// <summary> /// Konstruktor, setzt den HTML und JS auf string.Empty /// </summary> public ContentFileManager(string scriptMethodName) { using (var entities = new Vape4LifeEntities()) { var serverScriptMethod = entities.ServerScriptMethods.AsNoTracking().FirstOrDefault(s => s.Name == scriptMethodName); if (serverScriptMethod == null) { throw new Exception("Der ServerScriptMethod-Name wurde nicht in der DB gefunden!"); } entities.ReloadebleContentHTMLs.AsNoTracking() .Where(r => r.IdfServerScriptMethod == serverScriptMethod.IdServerScriptMethod) .ToList() .ForEach(r => HTML.Add(r.FilePath)); entities.ReloadebleContentJS.AsNoTracking() .Where(r => r.IdfServerScriptMethod == serverScriptMethod.IdServerScriptMethod) .ToList() .ForEach(r => JS.Add(r.FilePath)); entities.ReloadebleContentCSSes.AsNoTracking() .Where(r => r.IdfServerScriptMethod == serverScriptMethod.IdServerScriptMethod) .ToList() .ForEach(r => CSS.Add(r.FilePath)); AlloewdToReload = true; } }
/// <summary> /// Prüft ob der User registriert ist und ob die Passwörter übereinstimmen /// </summary> /// <param name="user">Der zu prüfende JSON-String</param> /// <returns>Neuer Content der angezeigt werden darf</returns> public static ContentFileManager CheckIfUserAlloewdAccess(string user) { var serializer = new JavaScriptSerializer(); //stop point set here DataClasses.User userObject = serializer.Deserialize <DataClasses.User>(user); ContentFileManager outPut = null; if (!string.IsNullOrEmpty(userObject.Password)) { using (var entities = new Vape4LifeEntities()) { if (entities.users.Any()) { var hash = sha256_hash(userObject.Password); if (entities.users.AsNoTracking().FirstOrDefault(e => e.Email.Equals(userObject.Email))?.Password?.Equals(hash) == true) { outPut = new HTML_Prebuilds.ContentFileManager("CheckIfUserAlloewdAccess"); outPut.AlloewdToReload = true; } else { outPut = new HTML_Prebuilds.ContentFileManager(); outPut.AlloewdToReload = false; } } /* * TODO: Dies ist der erste Benutzer (Adminuser beim Starten den Anwendung) * Dieser muss entsprechend umgebaut werden */ //else //{ // user u = new user(); // u.Name = "admin"; // u.Lastname = "admin"; // u.Nickname = "admin"; // u.Password = sha256_hash("admin"); // u.Email = "*****@*****.**"; // entities.users.Add(u); // entities.SaveChanges(); // outPut = new HTML_Prebuilds.ContentFileManager(); // outPut.HTML = "NOPE"; //} } } else { outPut = new ContentFileManager(); outPut.AlloewdToReload = false; } return(outPut); }