Esempio n. 1
0
        public JsonResult ChangePassword(ChangePasswordInputModel inputModel)
        {
            try
            {
                Assert.ArgumentNotNull(inputModel, "ChangePasswordInputModel");
                ChangePasswordBaseJsonResult result = new ChangePasswordBaseJsonResult();

                this.ValidateModel(result);
                if (result.HasErrors)
                {
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }

                var response = this.AccountManager.UpdateUserPassword(this.CurrentStorefront, this.CurrentVisitorContext, inputModel);
                result = new ChangePasswordBaseJsonResult(response.ServiceProviderResult);
                if (response.ServiceProviderResult.Success)
                {
                    result.Initialize(this.CurrentVisitorContext.UserName);
                }

                return(Json(result));
            }
            catch (Exception e)
            {
                CommerceLog.Current.Error("ChangePassword", this, e);
                return(Json(new BaseJsonResult("ChangePassword", e), JsonRequestBehavior.AllowGet));
            }
        }
        public async Task <IActionResult> Post(ChangePasswordInputModel changePasswordInput)
        {
            var response = new Response();

            if (!this.ModelState.IsValid)
            {
                response.Message = "Invalid data";
                return(this.BadRequest(response));
            }

            if (changePasswordInput.Password != changePasswordInput.ConfirmPassword)
            {
                response.Message = "The new passwords don't match!";
                return(this.BadRequest(response));
            }

            var userId  = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var success = await this.usersService.ChangePasswordAsync(userId, changePasswordInput.OldPassword, changePasswordInput.Password);

            if (success)
            {
                response.Message = "Successfully updated password!";
            }
            else
            {
                response.Message = "The old password is incorrect!";
            }

            return(this.Ok(response));
        }
Esempio n. 3
0
        public async Task <IActionResult> ChangePassword(ChangePasswordInputModel model)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.GetUserAsync(User);

                if (user == null)
                {
                    return(NotFound($"Unable to find user. Please contact administrator."));
                }

                var changePasswordResult = await userManager.ChangePasswordAsync(user, model.OldPassword, model.NewPassword);

                if (!changePasswordResult.Succeeded)
                {
                    foreach (var error in changePasswordResult.Errors)
                    {
                        ModelState.AddModelError(string.Empty, error.Description);
                    }
                    return(View("Index", await GetIndexViewModel()));
                }

                await signInManager.RefreshSignInAsync(user);

                ViewData["change-password-message"] = "Password successfuly changed!";
                return(View("Index", await GetIndexViewModel()));
            }
            return(View("Index", await GetIndexViewModel()));
        }
Esempio n. 4
0
        public async Task <IActionResult> ChangePassword(ChangePasswordInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            var user = await this.userManager.GetUserAsync(this.User);

            if (user == null)
            {
                return(this.NotFound($"Unable to load user wid ID '{this.userManager.GetUserId(this.User)}'"));
            }

            var changePasswordResult =
                await this.userManager.ChangePasswordAsync(user, input.OldPassword, input.NewPassword);

            if (!changePasswordResult.Succeeded)
            {
                foreach (var error in changePasswordResult.Errors)
                {
                    this.ModelState.AddModelError(error.Code, error.Description);
                }

                return(this.View(input));
            }

            await this.signInManager.RefreshSignInAsync(user);

            return(this.RedirectToAction("Manage", "Account"));
        }
Esempio n. 5
0
        public async Task <BaseModel> ChangePasswordAsync(string id, ChangePasswordInputModel model)
        {
            var user = await this.UserManager.FindByIdAsync(id);

            if (user == null)
            {
                this.BaseModel.HasError = true;
                this.BaseModel.Message  = MessageConstants.InvalidUserId;

                return(this.BaseModel);
            }

            var token = await this.UserManager.GeneratePasswordResetTokenAsync(user);

            var result = await this.UserManager.ResetPasswordAsync(user, token, model.Password);

            if (result.Succeeded)
            {
                this.BaseModel.HasError = false;
                this.BaseModel.Message  = MessageConstants.ChangePassword;
            }
            else
            {
                this.BaseModel.HasError = true;
                this.BaseModel.Message  = MessageConstants.NoChangePassword;
            }

            return(this.BaseModel);
        }
        public JsonResult ChangePassword(ChangePasswordInputModel inputModel)
        {
            try
            {
                Assert.ArgumentNotNull(inputModel, "ChangePasswordInputModel");
                ChangePasswordBaseJsonResult result = new ChangePasswordBaseJsonResult();
                this.ValidateModel(result);

                if (result.HasErrors)
                {
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }

                result = _accountRepository.ChangePassword(inputModel);

                return(Json(result));
            }

            catch (Exception e)
            {
                _logger.LogError("ChangePassword", this, e);

                return(Json(new BaseJsonResult("ChangePassword", e), JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 7
0
        public async Task <IActionResult> Index(ChangePasswordInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(await BuildViewModel(model)));
            }

            var user = await _userManager.GetUserAsync(User);

            IdentityResult result;

            if (await _userManager.HasPasswordAsync(user))
            {
                result = await _userManager.ChangePasswordAsync(user, model.CurrentPassword, model.NewPassword);
            }
            else
            {
                result = await _userManager.AddPasswordAsync(user, model.CurrentPassword);
            }

            if (result.Succeeded)
            {
                AddSuccessMessage("Your password has been updated.");
            }
            else
            {
                foreach (var error in result.Errors)
                {
                    AddFailureMessage(error.Description);
                }
            }

            return(View(await BuildViewModel(model)));
        }
        public ActionResult Index(ChangePasswordInputModel model)
        {
            //if (!User.HasUserID())
            //{
            //    return new HttpUnauthorizedResult();
            //}

            var _claimsID = new System.Security.Claims.ClaimsIdentity(User.Identity);
            if (!_claimsID.HasClaim("sub"))
            {
                return new HttpUnauthorizedResult();
            }
            var acctID = System.Guid.Parse(_claimsID.Claims.GetValue("sub"));

            if (ModelState.IsValid)
            {
                try
                {
                    //this.userAccountService.ChangePassword(User.GetUserID(), model.OldPassword, model.NewPassword);
                    this.userAccountService.ChangePassword(acctID, model.OldPassword, model.NewPassword);
                    return View("Success");
                }
                catch (ValidationException ex)
                {
                    ModelState.AddModelError("", ex.Message);
                }
            }
            return View(model);
        }
        public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordInputModel inputModel)
        {
            if (!ModelState.IsValid)
            {
                return(View(inputModel));
            }

            var user = await _userManager.GetUserAsync(HttpContext.User);

            if (user == null)
            {
                return(View("Error"));
            }

            if (!await _userManager.HasPasswordAsync(user))
            {
                return(RedirectToRoute("AddPassword"));
            }

            var result = await _userManager.ChangePasswordAsync(user, inputModel.CurrentPassword, inputModel.NewPassword);

            if (!result.Succeeded)
            {
                return(View("Error"));
            }

            await _signInManager.SignInAsync(user, false);

            return(RedirectToRoute("Home", new { Message = "Your password has been changeed." }));
        }
Esempio n. 10
0
        public IActionResult ChangePassword([Bind(Prefix = "Password")] ChangePasswordInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(CorrectErrors(BuildUserProfileModel(model), "password"));
            }

            try
            {
                var acct = _userAccountService.GetByID(User.GetId());
                _userAccountService.ChangePassword(acct.ID, model.OldPassword, model.NewPassword);
                return(RedirectToAction("Edit", new { changed = true }));
            }
            catch (AuthenticationException)
            {
                return(new HttpUnauthorizedResult());
            }
            catch (ValidationException ex) {
                // this is more fragile than I'd like, but I don't see another way to check this exception's cause
                if (ex.ValidationResult.ErrorMessage == "Invalid old password.")
                {
                    ModelState.AddModelError("Password.OldPassword", ex.Message);
                }
                else
                {
                    ModelState.AddModelError("Password.NewPassword", ex.Message);
                    ModelState.AddModelError("Password.NewPasswordConfirm", ex.Message);
                }
            }

            return(CorrectErrors(BuildUserProfileModel(model), "password"));
        }
Esempio n. 11
0
        private UserProfileModel BuildUserProfileModel(ChangePasswordInputModel passwordModel)
        {
            var profile = GetUserProfileModel();

            profile.Password = passwordModel;
            return(profile);
        }
Esempio n. 12
0
        public async Task <IActionResult> UpdatePassword
            ([Bind(Prefix = nameof(UserDetailsViewModel.UserChangePassword))] ChangePasswordInputModel model, string id)
        {
            if (!ModelState.IsValid)
            {
                return(this.RedirectToAction(nameof(Details), new { id = id, tab = "1" }));
            }
            var result = await this.UserService.ChangePasswordAsync(id, model);

            if (!result.HasError)
            {
                this.TempData.Put(MessageConstants.Name, new MessageModel()
                {
                    Type    = MessageType.Success,
                    Message = result.Message
                });
            }
            else
            {
                this.TempData.Put(MessageConstants.Name, new MessageModel()
                {
                    Type    = MessageType.Danger,
                    Message = result.Message
                });
            }

            return(RedirectToAction(nameof(Details), new { id = id }));
        }
Esempio n. 13
0
        public ChangePasswordResponseModel ChangePasswordWithOldPassword(ChangePasswordInputModel data)
        {
            bool           result  = false;
            string         message = "Failed Change Password";
            UserRepository repo    = new UserRepository(DbContext);

            var userInfo = repo.FindByID(data.UserID).FirstOrDefault();

            ChangePasswordResponseModel res = new ChangePasswordResponseModel();


            if (userInfo != null)
            {
                var response = repo.ChangePasswordWithOldPassword(userInfo.UserName, data.NewPassword.ConvertToMD5(), data.OldPassword.ConvertToMD5(), true);

                if (response.Result)
                {
                    ChangePasswordOutputModel resOut = new ChangePasswordOutputModel();
                    resOut.UserID = response.ID;

                    res.data = resOut;
                }

                result  = response.Result;
                message = response.Message;
            }
            res.Response = result;
            res.Message  = message;

            return(res);
        }
Esempio n. 14
0
        public JsonResult ChangePassword(ChangePasswordInputModel inputModel)
        {
            try
            {
                Assert.ArgumentNotNull(inputModel, nameof(inputModel));
                var result = this.CreateJsonResult <ChangePasswordApiModel>();
                if (result.HasErrors)
                {
                    return(Json(result, JsonRequestBehavior.AllowGet));
                }

                var response = AccountManager.UpdateUserPassword(CommerceUserContext.Current.UserName, inputModel);
                result = new ChangePasswordApiModel(response.ServiceProviderResult);
                if (response.ServiceProviderResult.Success)
                {
                    result.Initialize(CommerceUserContext.Current.UserName);
                }

                return(Json(result));
            }
            catch (Exception e)
            {
                return(Json(new ErrorApiModel("ChangePassword", e), JsonRequestBehavior.AllowGet));
            }
        }
Esempio n. 15
0
        public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordInputModel model)
        {
            var user = await _userManager.FindByIdAsync(model.UserId);

            if (user == null)
            {
                return(NotFound("Istifadeci tapilmadi"));
            }

            var token = await _userManager.GeneratePasswordResetTokenAsync(user);

            if (token != null)
            {
                var result = await _userManager.ResetPasswordAsync(user, token, model.Password);

                if (result.Succeeded)
                {
                    return(Ok());
                }
                else
                {
                    return(StatusCode(StatusCodes.Status500InternalServerError, new ResponseOutputModel {
                        Status = StatusCodes.Status500InternalServerError, Message = "Şifrə sıfırlanmadı.Şifrənizi kontrol edin"
                    }));
                }
            }

            return(StatusCode(StatusCodes.Status500InternalServerError, new ResponseOutputModel {
                Status = StatusCodes.Status500InternalServerError, Message = "Couldn't assign token"
            }));
        }
Esempio n. 16
0
        public ActionResult Change(string oldpassword, string newpassword, string renewpassword)
        {
            if (renewpassword == newpassword)
            {
                string userID = HttpContext.Session.GetString(SessionKeyID);
                ChangePasswordInputModel data = new ChangePasswordInputModel();
                data.UserID      = Guid.Parse(userID);
                data.OldPassword = oldpassword;
                data.NewPassword = renewpassword;
                JsonConvert.SerializeObject(data);
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(BaseAPI + "Profile/");
                    //HTTP POST
                    var postTask = client.PostAsJsonAsync <ChangePasswordInputModel>("ChangePassword", data);
                    postTask.Wait();

                    var result = postTask.Result;
                    if (result.IsSuccessStatusCode)
                    {
                        var datas = JsonConvert.DeserializeObject(result.Content.ReadAsStringAsync().Result);
                        if (datas.ToString().Contains("Gagal mengganti kata sandi."))
                        {
                            HttpContext.Session.SetString(SessionKeyCurrent, "true");
                            HttpContext.Session.SetString(SessionKeyError, "Gagal mengganti kata sandi.");
                            return(RedirectToAction("ChangePassword", "Profile"));
                        }
                        else
                        {
                            HttpContext.Session.SetString(SessionKeyID, "");
                            HttpContext.Session.SetString(SessionKeyName, "");
                            HttpContext.Session.SetString(SessionKeyRole, "");
                            //if (HttpContext.Session.GetString(Loginfrom) == "ADM/SPV")
                            //{
                            //	return RedirectToAction("AdminLogon", "Login");
                            //}
                            //else if (HttpContext.Session.GetString(Loginfrom) == "MDO")
                            //{
                            //	return RedirectToAction("OwnerLogon", "Login");
                            //}
                            //else
                            //{
                            //	return RedirectToAction("OwnerLogon", "Login");
                            //}
                            return(RedirectToAction("Logon", "Login"));
                        }
                    }
                }
                HttpContext.Session.SetString(SessionKeyCurrent, "true");
                HttpContext.Session.SetString(SessionKeyError, "Terjadi kesalahan. Mohon hubungi admin.");
                return(RedirectToAction("ChangePassword", "Profile"));
            }
            else
            {
                HttpContext.Session.SetString(SessionKeyCurrent, "true");
                HttpContext.Session.SetString(SessionKeyError, "New password is not same.");
                return(RedirectToAction("ChangePassword", "Profile"));
            }
        }
 public async Task <ActionResult> ChangePassword(
     ChangePasswordInputModel input)
 => await this.identity.ChangePassword(new ChangePasswordInputModel
 {
     UserId          = this.currentUser.UserId,
     CurrentPassword = input.CurrentPassword,
     NewPassword     = input.NewPassword
 });
Esempio n. 18
0
        public async Task <IActionResult> ChangePassword(ChangePasswordInputModel model)
        {
            var userId = User.GetAuthUserId();

            await this.service.ChangePassword(userId, model);

            return(this.Ok());
        }
Esempio n. 19
0
        public async Task <ActionResult> ChangePassword(ChangePasswordInputModel input)
        {
            var result = await this.identity.ChangePassword(this.currentUser.UserId, new ChangePasswordInputModel
            {
                CurrentPassword = input.CurrentPassword,
                NewPassword     = input.NewPassword
            });

            return(result);
        }
Esempio n. 20
0
        public async Task <IActionResult> ChangePasswordAsync([FromBody] ChangePasswordInputModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var result = await _userService.ChangePasswordAsync(model);

            return(Ok(result));
        }
Esempio n. 21
0
        public async Task ChangePassword([FromBody] ChangePasswordInputModel request)
        {
            if (!this.ModelState.IsValid)
            {
                throw new InvalidOperationException();
            }

            var user = await _userManager.FindByNameAsync(request.UserName);

            await _userManager.ChangePasswordAsync(user, request.CurrentPassword, request.NewPassword);
        }
Esempio n. 22
0
        public IActionResult ChangePassword()
        {
            var model          = new ChangePasswordInputModel();
            var claimsIdentity = User.Identity as ClaimsIdentity;
            var username       = claimsIdentity.Claims.Where(c => c.Type.Equals(ClaimTypes.Name));

            if (username != null && username.Any())
            {
                model.Username = username.FirstOrDefault().Value;
            }
            return(View(model));
        }
Esempio n. 23
0
        /// <summary>
        /// Sets the change password.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>
        /// The <see cref="ActionResult" />.
        /// </returns>
        public ActionResult SetChangePassword(ChangePasswordInputModel model)
        {
            bool   passwordChanged = false;
            string error           = string.Empty;

            if (ModelState.IsValid)
            {
                try
                {
                    this.Model.ChangePassword(SecurityManager.GetCurrentUserId(), model.OldPassword, model.NewPassword);
                    passwordChanged = true;
                }
                catch (Exception ex)
                {
                    if (ex is ValidationFailedProviderException)
                    {
                        error = ex.Message;
                    }
                    else
                    {
                        error = Res.Get <ChangePasswordResources>().ChangePasswordGeneralErrorMessage;
                    }
                }
            }
            else
            {
                try
                {
                    error = Res.Get <ChangePasswordResources>().Get(this.Model.GetErrorFromViewModel(this.ModelState));
                }
                catch (KeyNotFoundException)
                {
                    error = Res.Get <ChangePasswordResources>().ChangePasswordGeneralErrorMessage;
                }
            }

            string redirectUrl = string.Empty;

            if (passwordChanged && this.Model.ChangePasswordCompleteAction == ChangePasswordCompleteAction.RedirectToPage)
            {
                redirectUrl = this.Model.GetPageUrl(this.Model.ChangePasswordRedirectPageId);
            }
            else
            {
                error = HttpUtility.UrlEncode(error);
                var pageUrl     = this.Model.GetPageUrl(null);
                var queryString = string.Format("?passwordChanged={0}&error={1}", passwordChanged, error);

                redirectUrl = pageUrl + queryString;
            }

            return(this.Redirect(redirectUrl));
        }
        public ChangePasswordBaseJsonResult ChangePassword(ChangePasswordInputModel inputModel)
        {
            var response = this.AccountManager.UpdateUserPassword(this.CurrentStorefront, this.CurrentVisitorContext, inputModel);
            var result   = new ChangePasswordBaseJsonResult(response.ServiceProviderResult);

            if (response.ServiceProviderResult.Success)
            {
                result.Initialize(this.CurrentVisitorContext.UserName);
            }

            return(result);
        }
Esempio n. 25
0
        public async Task <IActionResult> ChangePassword(ChangePasswordInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            var user = await this.userManager.GetUserAsync(this.User);

            await this.userManager.ChangePasswordAsync(user, input.OldPassword, input.NewPassword);

            return(this.RedirectToAction("MyAccount"));
        }
        public async Task <HttpResponseMessage> ChangePasswordAsync(ChangePasswordInputModel model)
        {
            using (var httpClient = new HttpClient())
            {
                string data        = JsonConvert.SerializeObject(model);
                var    contentData = new StringContent(data, System.Text.Encoding.UTF8, "application/json");

                HttpResponseMessage response = await httpClient.AddHeader()
                                               .AddTokenToHeader(_loginManager.Token)
                                               .PutAsync("/api/Account/ChangePassword", contentData);

                return(response);
            }
        }
        public async Task <IActionResult> Password()
        {
            ApplicationUser user = await _userManager.GetUserAsync(User);

            ChangePasswordInputModel vm = new ChangePasswordInputModel {
            };

            vm.PasswordExists = (user.PasswordHash != null);
            if (vm.PasswordExists != true)
            {
                vm.OldPassword = "******";
            }
            return(View(vm));
        }
 public ActionResult Index(ChangePasswordInputModel model)
 {
     if (ModelState.IsValid)
     {
         try
         {
             this.userAccountService.ChangePassword(User.GetUserID(), model.OldPassword, model.NewPassword);
             return(View("Success"));
         }
         catch (ValidationException ex)
         {
             ModelState.AddModelError("", ex.Message);
         }
     }
     return(View(model));
 }
        public void ChangePassword_Initialized_ShouldReturnUserName(Database db, IOrderManager orderManager, IContactFactory contactFactory)
        {
            // arrange
            FakeSiteContext.Database          = db;
            Context.Items["__visitorContext"] = new MockVisitorContext("1", "fake", "1");
            var rep   = new AccountRepository(new MockAccountManager(), contactFactory, orderManager);
            var model = new ChangePasswordInputModel {
                OldPassword = "******", NewPassword = "******", ConfirmPassword = "******"
            };

            // act
            var result = rep.ChangePassword(model);

            // assert
            result.UserName.ShouldBeEquivalentTo("fake");
            result.Success.Should().BeTrue();
        }
Esempio n. 30
0
        public ActionResult Change(ChangePasswordInputModel inputData)
        {
            string userID = HttpContext.Session.GetString(SessionKeyID);
            ChangePasswordInputModel data = new ChangePasswordInputModel();

            try
            {
                data        = inputData;
                data.UserID = Guid.Parse(userID);
                JsonConvert.SerializeObject(data);
                using (var client = new HttpClient())
                {
                    client.BaseAddress = new Uri(BaseAPI + "Profile/");
                    //HTTP POST
                    var postTask = client.PostAsJsonAsync <ChangePasswordInputModel>("ChangePassword", data);
                    postTask.Wait();

                    var result = postTask.Result;
                    if (result.IsSuccessStatusCode)
                    {
                        var datas = JsonConvert.DeserializeObject(result.Content.ReadAsStringAsync().Result);
                        if (datas.ToString().Contains("Gagal ganti password"))
                        {
                            HttpContext.Session.SetString(SessionKeyCurrent, "true");
                            HttpContext.Session.SetString(SessionKeyError, "Gagal ganti password.");
                            return(RedirectToAction("ChangePassword", "Profile"));
                        }
                        else
                        {
                            HttpContext.Session.SetString(SessionKeyID, "");
                            HttpContext.Session.SetString(SessionKeyName, "");
                            HttpContext.Session.SetString(SessionKeyRole, "");
                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                }
                HttpContext.Session.SetString(SessionKeyCurrent, "true");
                HttpContext.Session.SetString(SessionKeyError, "Terjadi kesalahan server. Hubungi admin.");
                return(RedirectToAction("ChangePassword", "Profile"));
            }
            catch (Exception e)
            {
                ModelState.AddModelError(string.Empty, "Terjadi kesalahan server. Hubungi admin.");
                return(RedirectToAction("ChangePassword", "Profile"));
            }
        }
Esempio n. 31
0
        private async Task <ChangePasswordViewModel> BuildViewModel(ChangePasswordInputModel model = null)
        {
            var user = await _userManager.GetUserAsync(User);

            var vm = new ChangePasswordViewModel
            {
                NewPassword        = model?.NewPassword,
                NewPasswordConfirm = model?.NewPasswordConfirm,
                HasPasswordSet     = await _userManager.HasPasswordAsync(user)
            };

            if (!vm.HasPasswordSet)
            {
                throw new Exception("Not supported yet, until external logins are added.");
            }

            return(vm);
        }