Esempio n. 1
0
        public ResultMessage SetResetedPassword(SetPasswordDto data)
        {
            try
            {
                var user = _unitOfWork.UsersRepository.Get(u => u.SecurityStamp == data.ActivationToken).First();
                if (user == null)
                {
                    return new ResultMessage {
                               Status = HttpStatusCode.BadRequest, ErrorCode = (int)AuthenticationErrorsCodeEnum.UserDoesNotExist
                    }
                }
                ;

                CreatePasswordHash(data.NewPassword, out byte[] passwordHash, out byte[] passwordSalt);
                user.PasswordHash  = passwordHash;
                user.PasswordSalt  = passwordSalt;
                user.SecurityStamp = Helper.GenerateToken();

                _unitOfWork.UsersRepository.Update(user);
                _unitOfWork.Commit();
                return(new ResultMessage {
                    Status = HttpStatusCode.OK, Data = AuthenticateUser(user)
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, string.Empty);
                return(new ResultMessage {
                    Status = HttpStatusCode.InternalServerError, ErrorCode = (int)AuthenticationErrorsCodeEnum.AuthenticationError
                });
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> SetPassword(SetPasswordDto request)
        {
            int id = int.Parse(User.Claims.FirstOrDefault(claim => claim.Type == ClaimTypes.NameIdentifier).Value);
            ServiceResponse <string> response = await authRepo.SetOrChangePassword(userId : id, oldPassword : null, newPassword : request.Password);

            if (!response.Success)
            {
                return(BadRequest(response));
            }
            return(Ok(response));
        }
        public async Task <IHttpActionResult> SetPassword(int id, [FromBody] SetPasswordDto dto)
        {
            if ((await _userManager.FindByIdAsync(id)) == null)
            {
                return(NotFound());
            }
            await _userManager.RemovePasswordAsync(id);

            await _userManager.AddPasswordAsync(id, dto.Password);

            return(StatusCode(HttpStatusCode.Accepted));
        }
        public async Task <IActionResult> SetPassword(SetPasswordDto dto)
        {
            var result = await _mediator.Send(new SetPasswordRequest(User.Identity.Name, dto));

            if (!result.Succeeded)
            {
                ModelState.AddErrors(result);
                return(BadRequest(ModelState));
            }

            return(Ok(new ResponseViewModel("Your password has been reset!")));
        }
Esempio n. 5
0
        public async Task <IActionResult> SetNewPassword(SetPasswordDto setPasswordDto)
        {
            IDatabaseContext context     = _getDatabaseContext();
            User             currentUser = await HttpContext.GetCurrentUserAsync(context);

            bool currentPasswordCorrect = _passwordService.VerifyPassword(setPasswordDto.CurrentPassword, currentUser.PasswordHash);

            if (!currentPasswordCorrect)
            {
                return(BadRequest(RequestStringMessages.CurrentPasswordWrong));
            }

            currentUser.PasswordHash = _passwordService.HashPassword(setPasswordDto.NewPassword);

            await context.SaveChangesAsync();

            _logger.LogInformation("{0}(): User changed his password", nameof(SetNewPassword));

            return(Ok());
        }
Esempio n. 6
0
        public async Task <IActionResult> ResetPassword([FromBody] SetPasswordDto setPasswordDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var user = await _userManager.FindByIdAsync(setPasswordDto.Id);

            if (user == null)
            {
                return(NotFound());
            }

            var resetResult = _userManager.ResetPasswordAsync(user, setPasswordDto.Token, setPasswordDto.Password).Result;

            if (!resetResult.Succeeded)
            {
                return(BadRequest());
            }
            return(Ok());
        }
        public async Task <IHttpActionResult> SetNewPassword([FromBody] SetPasswordDto setPasswordDto)
        {
            // Validate parameters
            if (!ModelState.IsValid || setPasswordDto == null)
            {
                return(BadRequest());
            }

            var authorizedAdministrator =
                (Administrator)ActionContext.Request.Properties[AuthorizationConstants.UserInformationKey];

            using (var dbContext = new HappyMeterDatabaseContext())
            {
                dbContext.Administrators.Attach(authorizedAdministrator);

                authorizedAdministrator.UpdatePassword(setPasswordDto.NewPassword);

                await dbContext.SaveChangesAsync();

                return(Ok());
            }
        }
        public async Task SetPassword(SetPasswordDto input)
        {
            // Kiểm tra password admin
            var adminUser = await _userRepository.FirstOrDefaultAsync((long)AbpSession.UserId);

            var loginAsync = await _logInManager.LoginAsync(adminUser.UserName, input.AdminPassword, shouldLockout : false);

            if (loginAsync.Result != AbpLoginResultType.Success)
            {
                throw new UserFriendlyException(L("WrongAdminPassword"));
            }

            var currentUser = await _userRepository.FirstOrDefaultAsync(input.UserId);

            if (currentUser != null)
            {
                currentUser.Password = _passwordHasher.HashPassword(currentUser, input.Password);
            }
            else
            {
                throw new UserFriendlyException(L("AccountIsNotFound"));
            }
        }
 public SetPasswordRequest(string userName, SetPasswordDto input)
 {
     UserName = userName;
     Input    = input;
 }
Esempio n. 10
0
        public async Task <ActionResult> SetPassword(Guid id, SetPasswordDto pwDto, [FromServices] IMeansValueHasher pwHasher)
        {
            var userId = id;

            if ((await _usersService.GetUser(userId)) is null)
            {
                throw new BaristaException("user_not_found", $"Could not find user with ID '{userId}'");
            }

            var passwordPage = await _identityService.BrowseMeansAssignedToUser(userId, new BrowseAssignedMeans { IsValid = true, Method = MeansMethod.Password, ResultsPerPage = 1 });

            if (passwordPage.TotalResults == 1)
            {
                var means = passwordPage.Items.Single();
                return(await SendAndHandleOperationCommand(new UpdateAuthenticationMeansValue(means.Id, pwHasher.Hash(pwDto.NewPassword))));
            }
            else if (passwordPage.TotalResults > 1)
            {
                _logger.LogWarning("The user {userId} has more than one password authentication means assigned. They will be purged before the new password is set.", userId);

                int deletedPasswordMeans;
                var query = new BrowseAssignedMeans {
                    IsValid = true, Method = MeansMethod.Password
                };

                do
                {
                    deletedPasswordMeans = 0;

                    var passwordMeansPage = await _identityService.BrowseMeansAssignedToUser(userId, query);

                    foreach (var passwordMeans in passwordMeansPage.Items)
                    {
                        await Publisher.SendRequest(new DeleteAuthenticationMeans(passwordMeans.Id));

                        _logger.LogInformation("Purged one of multiple passwords assigned to user {userId} with means ID {meansId}", userId, passwordMeans.Id);
                        deletedPasswordMeans++;
                    }
                } while (deletedPasswordMeans > 0);
            }

            var meansCreation = await Publisher.SendRequest <ICreateAuthenticationMeans, IIdentifierResult>(
                new CreateAuthenticationMeans(Guid.NewGuid(), null, MeansMethod.Password, pwHasher.Hash(pwDto.NewPassword), DateTimeOffset.UtcNow, null)
                );

            if (!meansCreation.Successful)
            {
                throw meansCreation.ToException();
            }

            var meansAssignment = await Publisher.SendRequest <ICreateAssignmentToUser, IIdentifierResult>(
                new CreateAssignmentToUser(Guid.NewGuid(), meansCreation.Id.Value, DateTimeOffset.UtcNow, null, userId, false)
                );

            if (!meansAssignment.Successful)
            {
                throw meansAssignment.ToException();
            }

            return(Ok());
        }
Esempio n. 11
0
        public async Task <IActionResult> SetPassword(Guid id, SetPasswordDto passwordDto)
        {
            await _localUserService.SetPassword(id, passwordDto.Password);

            return(Ok());
        }
Esempio n. 12
0
 public IActionResult SetResetedPassword([FromBody] SetPasswordDto data)
 {
     return(GetStatusCodeResult(_userService.SetResetedPassword(data)));
 }