Beispiel #1
0
        public async Task <IActionResult> ChangePassword([FromBody] ChangePasswordCmd request)
        {
            try
            {
                var result = await _service.ChangePassword(request);

                return(Ok(result));
            }
            catch (BusinessLogicException ex)
            {
                return(BadRequest(new Response
                {
                    Status = false,
                    Message = ex.Message
                }));
            }
            catch (Exception e)
            {
                return(BadRequest(new Response
                {
                    Status = false,
                    Message = ErrorMessages.UnkownError
                              //e.Message
                }));
            }
        }
Beispiel #2
0
        public async Task <bool> ChangePassword(ChangePasswordCmd cmd)
        {
            var evt        = PasswordChangedEvt.MakeEventEntity(cmd);
            var insertions = await eventRepository.Create(evt);

            return(insertions > 0);
        }
Beispiel #3
0
        public async Task <IActionResult> ResetPassword([FromBody] ResetRequest request)
        {
            try
            {
                var user = await _userRepository.WithEmail(request.email);

                var password = PasswordGenerator.CreateRandomPassword(8);
                user.Password = _passwordHasher.HashPassword(user, password);
                var cmd    = new ChangePasswordCmd(user.Password, user.Id);
                var result = await _userRepository.ChangePassword(cmd);

                if (result)
                {
                    bool response = MailsHelpers.MailPassword(user.Email, password);
                    if (response)
                    {
                        return(Ok());
                    }
                    else
                    {
                        return(new JsonResult(new ResponseMail("Error al mandar correo", 0, 400))
                        {
                            StatusCode = 400
                        });
                    }
                }
                else
                {
                    return(new JsonResult(new ResponseMail("Error al actualizar", 0, 404))
                    {
                        StatusCode = 404
                    });
                }
            }
            catch (Exception e)
            {
                return(new JsonResult(e.Message)
                {
                    StatusCode = 500
                });
            }
        }
Beispiel #4
0
        public async Task <IActionResult> ChangePassword(long id, [FromBody] ChangePasswordReq req)
        {
            var user = await userRepository.WithId(id);

            var result = passwordHasher.VerifyHashedPassword(user, user.Password, req.OldPassword);

            if (result == PasswordVerificationResult.Failed)
            {
                return(BadRequest());
            }
            var hashedPass = passwordHasher.HashPassword(user, req.NewPassword);
            var cmd        = new ChangePasswordCmd(hashedPass, id);
            var changed    = await userRepository.ChangePassword(cmd);

            if (changed)
            {
                return(Ok());
            }
            return(BadRequest());
        }
Beispiel #5
0
        public async Task <Response> ChangePassword(ChangePasswordCmd request)
        {
            var userId = _httpContext.GetUserId();
            var user   = _context.Users.FirstOrDefault(x => x.Id == userId);

            var userHasValidPassword = await _userManager.CheckPasswordAsync(user, request.CurrentPassword);

            if (!userHasValidPassword)
            {
                throw new BusinessLogicException("رمز عبور صحیح نمی باشد");
            }

            var hashPassword = _userManager.PasswordHasher.HashPassword(user, request.NewPassword);

            user.PasswordHash = hashPassword;
            await _userManager.UpdateAsync(user);

            return(new Response
            {
                Status = true,
                Message = "success"
            });
        }