Beispiel #1
0
        public ActionResult ResetPassword(int?id, ResetPasswordViewModel user, ResetPasswordMessage message)  //ResetPasswordViewModel user
        {
            //Map ResetPasswordViewModel to Account mdoel
            Account model = new Account()
            {
                oldPassword          = user.oldPassword,
                newPassword          = user.newPassword,
                confirmResetPassword = user.confirmResetPassword
            };

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            var resetPassword = db.user.Find(id);

            if (TryUpdateModel(resetPassword, "", new string[] { "password" }))
            {
                db.SaveChanges();

                return(RedirectToAction("ResetPassword", new { message = ResetPasswordMessage.ChangePasswordSuccess }));
            }
            else
            {
                ModelState.AddModelError("", "We could not reset your password.");
            }

            ViewBag.ReturnUrl = Url.Action("ResetPassword");
            return(View(resetPassword));
        }
Beispiel #2
0
        public ActionResult ResetPassword(ResetPasswordMessage message)
        {
            ViewBag.StatusMessage =
                message == ResetPasswordMessage.ChangePasswordSuccess ? "Your password has been changed."
                : message == ResetPasswordMessage.SetPasswordSuccess ? "Your password has been set."
                : "";

            ViewBag.ReturnUrl = Url.Action("ResetPassword");
            return(View());
        }
        public void SendResetPasswordEmail(string email, bool canBeReset, string hash = null)
        {
            var resetPasswordMessage = new ResetPasswordMessage
            {
                To = email,
                CanBeResetInternally = canBeReset,
                Subject = "Password reset",
                Link    = $"{_passwordResetOptions.Url}/{hash}"
            };

            _emailDispatcher.Dispatch(resetPasswordMessage);
        }
Beispiel #4
0
        public IServerResponse ResetPassword(ResetPasswordInfo resetPasswordInfo)
        {
            var emailOrMobile = resetPasswordInfo.EmailOrMobile.ToLower();
            var obj           = repoUser.Query(o => o.Email == emailOrMobile || o.Mobile == emailOrMobile).FirstOrDefault();

            ServerResponse <Session> response = new ServerResponse <Session>();

            if (obj == null)
            {
                response.Status  = ResponseStatus.Failed;
                response.Message = DAF.SSO.Resources.Locale(o => o.EmailOrMobileNotFound);
            }
            else
            {
                obj.Password = pwdEncryptor.Encrypt(resetPasswordInfo.NewPassword);
                if (repoUser.Update(obj))
                {
                    // reset successfully, sent user info.
                    ResetPasswordMessage msg = new ResetPasswordMessage()
                    {
                        Account     = obj.Account,
                        FullName    = obj.FullName,
                        NickName    = obj.NickName,
                        NewPassword = resetPasswordInfo.NewPassword
                    };
                    if (resetPasswordInfo.EmailOrMobile == obj.Email)
                    {
                        msg.Email = obj.Email;
                    }
                    else if (resetPasswordInfo.EmailOrMobile == obj.Mobile)
                    {
                        msg.Mobile = obj.Mobile;
                    }
                    if (!string.IsNullOrEmpty(msg.Email) || !string.IsNullOrEmpty(msg.Mobile))
                    {
                        MessageManager.Publish <ResetPasswordMessage>(msg);
                    }

                    response.Status  = ResponseStatus.Success;
                    response.Message = DAF.SSO.Resources.Locale(o => o.ChangePasswordSuccessfully);
                }
                else
                {
                    response.Status  = ResponseStatus.Failed;
                    response.Message = DAF.Core.Resources.Locale(o => o.SaveFailure);
                }
            }
            return(response);
        }
Beispiel #5
0
        public virtual async Task <IActionResult> Post([FromBody] ResetPasswordMessage body)
        {
            if (body == null)
            {
                throw new ArgumentException("Invalid user");
            }

            if (string.IsNullOrEmpty(body.EMail))
            {
                ModelState.AddModelError("email", "Tieto on pakollinen.");
            }
            else
            {
                if (!IsValidEmail(body.EMail))
                {
                    ModelState.AddModelError("email", "Tarkista sähköpostiosoite.");
                }
            }

            if (string.IsNullOrEmpty(body.NewPassword))
            {
                ModelState.AddModelError("new_password", "Tieto on pakollinen.");
            }
            else
            {
                if (body.NewPassword != body.NewPassword2)
                {
                    ModelState.AddModelError("new_password", "Tarkista salasana.");
                }
            }

            if (!ModelState.IsValid)
            {
                return(new BadRequestObjectResult(ModelState));
            }

            VetumaAuthenticationResponse vetuma;

            if (!Vetuma.CreatedTRIDsForPasswordRecovery.TryGetValue(body.TRID, out vetuma))
            {
                throw new InvalidOperationException($"Could not find VetumaAuthenticationResponse by using the TRID {body.TRID}");
            }

            var succeed = true;

            var obj = JObject.Parse("{ }");

            obj.Add("email", body.EMail);
            obj.Add("vetuma", Vetuma.GetVetumaTokenForPersonId(vetuma.PersonId));
            obj.Add("new_password", body.NewPassword);

            JObject result;

            try
            {
                result = await PostJson("reset-password/", obj);
            }
            catch (DjangoFailedException)
            {
                succeed = false;
            }

            VetumaAuthenticationResponse removed;

            Vetuma.CreatedTRIDsForPasswordRecovery.TryRemove(body.TRID, out removed);

            ResetPasswordReply r = new ResetPasswordReply {
                Succeed = succeed
            };

            return(Json(r));
        }