public ActionResult Index(ViewModelLogin model) { if (ModelState.IsValid) { //On demande l'user var user = Bdd.GetUser(model); if (user.IsNull()) { //Error dans la saisie des informations ModelState.AddModelError("Email", "Les informations saisies ne correspondent à aucun compte"); return View(model); } if (user.IsClient()) { ModelState.AddModelError("Email", "Vous n'avez pas accés à cette zone"); return View(model); } if (user.IsAdministrateurFranchise()) { AddUserSession(user); return RedirectToAction("Index", "Franchise"); } if (user.IsManager()) { AddUserSession(user); var manager = (Manager) user; return RedirectToRoute("Backend_salon_index", new { id = manager.IdSalon }); } if (user.IsEmploye()) { AddUserSession(user); } //On ne connait pas le type de l'user connecté ModelState.AddModelError("Email", "Nous ne pouvez déterminer le type de compte que vous avez"); } return View(model); }
/// <summary> /// Permet de récupérer un User via le model /// </summary> /// <param name="model">ViewModelLogin</param> /// <returns>User</returns> public User GetUser(ViewModelLogin model = null) { try { if (model.IsNull()) return null; //On convertit en MD5 le password var md5 = model.Password.ToMd5(); if (md5.IsNullOrEmpty()) return null; //On cherche l'user return Users.FirstOrDefault(u => u.Password.Equals(md5) && u.Email.Equals(model.Email.ToLower())); } catch (Exception) { return null; } }