public ActionResult Login([Bind(Include = "email,password,rememberMe")] LoginViewModel loginViewModel) { try { Employee emp = db.Employees.Single(e => e.EmployeeEmail.Equals(loginViewModel.Email)); var r = from l in db.EmployeeRoles where l.Employee.EmployeeID == emp.EmployeeID select l.Role.RoleName; List <string> roles = r.ToList(); if (emp != null) { string pass = EmployeesController.getHashedPassword(loginViewModel.Password); if (pass.Equals(emp.PasswordHash)) { Session["user"] = emp; Session["roles"] = roles; if (loginViewModel.RememberMe) { HttpCookie ckUsername = new HttpCookie("username"); ckUsername.Expires = DateTime.Now.AddSeconds(3600); ckUsername.Value = emp.EmployeeEmail; Response.Cookies.Add(ckUsername); } if (roles.Contains("Super User")) { return(RedirectToAction("Index", "EmployeeLeaveRequestViewModels")); } else if (roles.Contains("Department Manager")) { return(RedirectToAction("Index", "DepartmentManagerLeaveRequestViewModels")); } else if (roles.Contains("Delivery Manager")) { return(RedirectToAction("Index", "DeliveryManagerViewModel")); } else if (roles.Contains("Worker")) { return(RedirectToAction("Index", "EmployeeLeaveRequestViewModels")); } else { return(RedirectToAction("Index", "EmployeeLeaveRequestViewModels")); } } else { TempData["PasswordError"] = "Leave Manager password is incorrect!"; TempData["User"] = emp.EmployeeEmail.ToString(); return(RedirectToAction("Index", "Login")); } } return(RedirectToAction("Index", "Login")); } catch { TempData["EmailError"] = "There is no user with that email!"; return(RedirectToAction("Index", "Login")); } }
public ActionResult ForgottenPassword([Bind(Include = "email")] LoginViewModel loginViewModel) { var r = from l in db.Employees where l.EmployeeEmail == loginViewModel.Email select l; if (!r.Any()) { ViewBag.emailError = "Wrong email address."; return(View()); } else { Employee emp = r.First(); string password = Membership.GeneratePassword(10, 3); db.Employees.Single(e => e.EmployeeID == emp.EmployeeID).PasswordHash = EmployeesController.getHashedPassword(password); db.SaveChanges(); sendMailWithNewPass(emp, password); TempData["resetSuccess"] = "New password is send to your email address."; return(RedirectToAction("Index")); } }