Esempio n. 1
0
        public ActionResult ResetPassword(string email)
        {
            if (string.IsNullOrEmpty(email))
            {
                ModelState.AddModelError("email", AuthMessage.EmailMustHaveAValue.NiceToString());
                return(View(AuthClient.ResetPasswordView));
            }

            using (AuthLogic.Disable())
            {
                UserEntity user = ResetPasswordRequestLogic.GetUserByEmail(email);

                if (user == null)
                {
                    ModelState.AddModelError("email", AuthMessage.ThereSNotARegisteredUserWithThatEmailAddress.NiceToString());
                    return(View(AuthClient.ResetPasswordView));
                }

                ResetPasswordRequestEntity rpr = ResetPasswordRequestLogic.ResetPasswordRequest(user);
                string url = HttpContext.Request.Url.GetLeftPart(UriPartial.Authority) + Url.Action <AuthController>(ac => ac.ResetPasswordCode(email, rpr.Code));
                new ResetPasswordRequestMail(rpr, url).SendMailAsync();
            }

            TempData["email"] = email;
            return(RedirectToAction("ResetPasswordSend"));
        }
Esempio n. 2
0
        public ActionResult ResetPasswordSetNew()
        {
            ResetPasswordRequestEntity rpr = (ResetPasswordRequestEntity)TempData["ResetPasswordRequest"];

            if (rpr == null)
            {
                TempData["Error"] = AuthMessage.ThereHasBeenAnErrorWithYourRequestToResetYourPasswordPleaseEnterYourLogin.NiceToString();
                return(RedirectToAction("ResetPassword"));
            }
            ViewData["rpr"] = rpr.Id;
            return(View(AuthClient.ResetPasswordSetNewView));
        }
        public ResetPasswordRequest ResetPassword(int userId)
        {
            var request = new ResetPasswordRequestEntity()
            {
                CreatedOn = DateTime.UtcNow,
                Token     = Guid.NewGuid(),
                UserId    = userId
            };

            UnitOfWork.ResetPasswordRequests.Add(request).ToModel();
            UnitOfWork.Commit();

            return(request.ToModel());
        }
Esempio n. 4
0
        public static ResetPasswordRequest ToModel(this ResetPasswordRequestEntity dataModel)
        {
            if (dataModel == null)
            {
                return(null);
            }

            return(new ResetPasswordRequest
            {
                CreatedOn = dataModel.CreatedOn,
                Id = dataModel.Id,
                Token = dataModel.Token,
                UsedOn = dataModel.UsedOn,
                User = dataModel.User.ToModel()
            });
        }
Esempio n. 5
0
        public ActionResult ResetPasswordSetNew(Lite <ResetPasswordRequestEntity> rpr)
        {
            using (AuthLogic.Disable())
            {
                ResetPasswordRequestEntity request = rpr.Retrieve();

                var user = request.User;

                var context = user.ApplyChanges(this, UserMapping.ChangePassword, "").Validate();


                HashSet <string> errorNpk  = null;
                HashSet <string> errorNpbk = null;
                context.Errors.TryGetValue(UserMapping.NewPasswordKey, out errorNpk);
                context.Errors.TryGetValue(UserMapping.NewPasswordBisKey, out errorNpbk);

                if (!errorNpk.IsNullOrEmpty() || !errorNpbk.IsNullOrEmpty())
                {
                    ViewData["Title"] = AuthMessage.ChangePassword.NiceToString();
                    ModelState.FromContext(context);
                    return(ResetPasswordSetNewError(request.Id, ""));
                }

                string errorPasswordValidation = UserEntity.OnValidatePassword(Request.Params[UserMapping.NewPasswordKey]);
                if (errorPasswordValidation.HasText())
                {
                    return(ResetPasswordSetNewError(request.Id, errorPasswordValidation));
                }


                using (OperationLogic.AllowSave <UserEntity>())
                {
                    context.Value.Save();
                }
                //remove pending requests
                Database.Query <ResetPasswordRequestEntity>().Where(r => r.User.Email == user.Email && r.Code == request.Code).UnsafeDelete();
            }

            return(RedirectToAction("ResetPasswordSuccess"));
        }