Пример #1
0
        public Response <object> ChangePasswordForFirstTime(UserChangePasswordForFirstTimeModel _)
        {
            var user       = _repository.GetUserByUsername(_contextAccessor.HttpContext.User.Identity.Name);
            var userBefore = CloneObject.Clone(user);

            //if (user.IdUserAuthorizationType != (int)UserAuthorizationTypeIds.SystemAccount)
            //{
            //    _saveLog.LogInformation("User with Active Directory cannot change password from this system!");
            //    return new Response<object>(PublicResultStatusCodes.NotAllowedOperation);
            //}

            var checkPassword = PasswordHelper.ValidatePassword(_.NewPassword);

            if (checkPassword)
            {
                var hashHelper = new HashHelper(_.NewPassword);
                user.Password                 = hashHelper.Hash;
                user.SaltedPassword           = hashHelper.Salt;
                user.LatestPasswordChangeDate = DateTime.Now;
                user.ChangePasswordNeeded     = false;

                var serials = ConvertToBinaryHelper <User> .SerializeAndConvert(userBefore, user);

                _generalUpdateService.UpdateAddLogDataChange(user, serials.Item1, serials.Item2);

                return(new Response <object>(PublicResultStatusCodes.Done));
            }
            _saveLog.LogInformation("Password must have at least six characters, one upperCase and one number!");
            return(new Response <object>(PublicResultStatusCodes.ModelIsNotValid));
        }
Пример #2
0
 public IActionResult ChangePasswordForFirstTime(UserChangePasswordForFirstTimeModel _) => Ok(_userService.ChangePasswordForFirstTime(_));