public ActionResult ResetPassword(ResetPassword model)
        {
            var desiredReset = Interlex.BusinessLayer.Models.LostPassword.GetPasswordReset(model.Code);

            if (desiredReset == null)
            {
                TempData["msg"]        = Resources.Resources.UI_PasswordResetCodeInvalid;
                TempData["statusCode"] = "Error";
                return(RedirectToAction("ResetPassword"));
            }
            else if (model.Password != model.Password2)
            {
                TempData["msg"]        = Resources.Resources.UI_PasswordsNotMatch;
                TempData["statusCode"] = "Error";
                return(RedirectToAction("ResetPassword"));
            }
            else
            {
                var desiredUserId = int.Parse(desiredReset["_user_id"].ToString());
                var issueDate     = DateTime.Parse(desiredReset["_issue_date"].ToString());
                var expiryFromDB  = desiredReset["_expiry_date"].ToString();

                var expiryDate  = issueDate.AddMinutes(int.Parse(ConfigurationManager.AppSettings["PasswordReset_ExpiryMinutes"]));
                var now         = DateTime.Now;
                var isCodeValid = DateTime.Compare(expiryDate, now);
                if (isCodeValid < 0)
                {
                    TempData["msg"]        = Resources.Resources.UI_PasswordResetCodeExpired;
                    TempData["statusCode"] = "Error";
                    return(RedirectToAction("ResetPassword"));
                }
                else if (expiryFromDB != String.Empty)
                {
                    TempData["msg"]        = Resources.Resources.UI_PasswordResetCodeUsed;
                    TempData["statusCode"] = "Error";
                    return(RedirectToAction("ResetPassword"));
                }
                else
                {
                    EditPassword.ChangePassword(desiredUserId, model.Password);
                    Interlex.BusinessLayer.Models.LostPassword.UpdatePasswordResetExpiry(model.Code);

                    TempData["msg"]        = Resources.Resources.UI_PasswordChanged;
                    TempData["statusCode"] = "OK";
                    return(RedirectToAction("ResetPassword"));
                }
            }
        }
Exemple #2
0
        public ActionResult ChangePassword(EditPassword model)
        {
            var newPassword = model.Password;
            var userId      = UserData.UserId;
            var result      = EditPassword.ChangePassword(userId, newPassword);

            if (result)
            {
                ViewBag.Msg = Resources.Resources.Notify_PasswordChangeSuccess;
            }
            else
            {
                ViewBag.Msg = Resources.Resources.Notify_PasswordChangeError;
            }

            return(PartialView("~/Views/User/_SettingsChangeResult.cshtml"));
        }