Exemple #1
0
        public void ChangePasswordTest()
        {
            PasswordDTO dto = new PasswordDTO {
                UserName = "******", OldPassword = "******", NewPassword = "******"
            };
            bool result = (_userRepository.ChangePassword(dto)).Result.Succeeded;

            Assert.True(result);

            dto = new PasswordDTO {
                UserName = "******", OldPassword = "******", NewPassword = ""
            };
            result = (_userRepository.ChangePassword(dto)).Result.Succeeded;
            Assert.True(result != true);

            dto = new PasswordDTO {
                UserName = "", OldPassword = "******", NewPassword = "******"
            };
            result = (_userRepository.ChangePassword(dto)).Result.Succeeded;
            Assert.True(result != true);

            dto = new PasswordDTO {
                UserName = "******", OldPassword = "", NewPassword = "******"
            };
            result = (_userRepository.ChangePassword(dto)).Result.Succeeded;
            Assert.True(result != true);
        }
Exemple #2
0
        public async Task <IActionResult> UpdatePassword(string id, [FromBody] PasswordDTO dto)
        {
            try
            {
                await _accountService.ChangePassword(id, dto, AuthInfo());

                _logger.LogInformation("User successfully updated password");
                return(NoContent());
            }
            catch (ArgumentNullException ex)
            {
                _logger.LogError(ex, ex.Message);
                return(NotFound());
            }
            catch (NotEnoughtRightsException ex)
            {
                _logger.LogError(ex, ex.Message);
                return(Forbid());
            }
            catch (ArgumentException ex)
            {
                _logger.LogError(ex, "User entered incorrect current password");
                return(BadRequest(ex));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Error occurred while user tried to update passport");
                throw;
            }
        }
        public ActionResult PasswordEdit()
        {
            PasswordDTO userPassword = new PasswordDTO();

            userPassword.UserId = CurrentUserId;

            return(View("PasswordEdit", userPassword));
        }
        public ActionResult Put([FromBody] PasswordDTO passwordDto)
        {
            if (UsersDAO.UpdatePassword(passwordDto))
            {
                return(Ok(true));
            }

            return(BadRequest(false));
        }
Exemple #5
0
        public PasswordDTO Generate_EncryptedPassword_Given_Password_Salt(string password, string salt)
        {
            var passwordDTO = new PasswordDTO {
                Password = password,
                Salt     = salt
            };

            passwordDTO.EncryptedPassword = setEncytpedPassword(passwordDTO.Password, passwordDTO.Salt);
            return(passwordDTO);
        }
Exemple #6
0
        public PasswordDTO Generate_EncryptedPassword_Given_Salt(string salt)
        {
            var passwordDTO = new PasswordDTO {
                Password = generatePassword(PasswordDTO.PasswordMaxLength),
                Salt     = salt
            };

            passwordDTO.EncryptedPassword = setEncytpedPassword(passwordDTO.Password, passwordDTO.Salt);
            return(passwordDTO);
        }
Exemple #7
0
        public PasswordDTO Generate_NewPassword_EncryptedPassword_Salt()
        {
            var passwordDTO = new PasswordDTO {
                Password = generatePassword(PasswordDTO.PasswordMaxLength),
                Salt     = generateSalt(PasswordDTO.SaltLength)
            };

            passwordDTO.EncryptedPassword = setEncytpedPassword(passwordDTO.Password, passwordDTO.Salt);
            return(passwordDTO);
        }
Exemple #8
0
        public PasswordDTO Generate_EncryptedPassword_Salt_Given_Password(string password)
        {
            var passwordDTO = new PasswordDTO {
                Password = password,
                Salt     = generateSalt(PasswordDTO.SaltLength)
            };

            passwordDTO.EncryptedPassword = setEncytpedPassword(passwordDTO.Password, passwordDTO.Salt);
            return(passwordDTO);
        }
Exemple #9
0
        public bool IsValidPasswordDTO(PasswordDTO dto)
        {
            User user = _mapper.Map <User>(dto);

            ValidateEmail();
            ValidateCPF();

            ValidationResult = Validate(user);

            return(ValidationResult.IsValid);
        }
Exemple #10
0
 public void UpdatePassword(PasswordDTO password)
 {
     if (password.Id != null)
     {
         Console.WriteLine("Password Update");
     }
     else
     {
         Console.WriteLine("Password New");
     }
 }
Exemple #11
0
        public string GeneratePassword(PasswordDTO passwordConfig)
        {
            string      password          = null;
            List <char> finalPasswordList = null;
            Random      r = null;
            char        ch;

            try
            {
                if (passwordConfig != null)
                {
                    if (passwordConfig.PasswordLength != 0)
                    {
                        //get random Caps
                        finalPasswordList = new List <char>();
                        r = new Random();
                        for (int i = 0; i < passwordConfig.CapitalLettersLength; i++)
                        {
                            ch = arrCaps[r.Next(arrCaps.Length)];
                            finalPasswordList.Add(ch);
                        }
                        //get random Smalls

                        for (int i = 0; i < passwordConfig.SmallLettersLength; i++)
                        {
                            ch = arrSmall[r.Next(arrSmall.Length)];
                            finalPasswordList.Add(ch);
                        }
                        //get random Digits
                        for (int i = 0; i < passwordConfig.DigitsLength; i++)
                        {
                            ch = arrDigits[r.Next(arrDigits.Length)];
                            finalPasswordList.Add(ch);
                        }

                        //get random Special Characters
                        for (int i = 0; i < passwordConfig.SpecialCharactersLength; i++)
                        {
                            ch = arrSpecialCharacter[r.Next(arrSpecialCharacter.Length)];
                            finalPasswordList.Add(ch);
                        }

                        Random rFinal = new Random();
                        finalPasswordList = new List <char>(finalPasswordList.OrderBy(ran => rFinal.Next()).ToList());
                        password          = new string(finalPasswordList.ToArray());
                    }
                }
            }
            catch (Exception ex)
            {
            }
            return(password);
        }
Exemple #12
0
        public async Task <IdentityResult> ChangePassword(PasswordDTO dto)
        {
            if (dto.NewPassword == string.Empty || dto.OldPassword == string.Empty || dto.UserName == string.Empty)
            {
                IdentityError error = new IdentityError();
                error.Description = "Nazwa użytkownika, stare hasło lub nowe jest puste!";
                return(IdentityResult.Failed(error));
            }

            User user = await _context.Users.FirstOrDefaultAsync(m => m.UserName == dto.UserName);

            IdentityResult result = await _userManager.ChangePasswordAsync(user, dto.OldPassword, dto.NewPassword);

            return(result);
        }
Exemple #13
0
        public async Task ChangePassword(PasswordDTO password)
        {
            var user = await _context.Users.Where(u => u.Id == password.UserId).FirstOrDefaultAsync();

            if (user == null)
            {
                throw new NotFoundException(nameof(User));
            }

            var salt = SecurityHelper.GetRandomBytes();

            user.Salt     = Convert.ToBase64String(salt);
            user.Password = SecurityHelper.HashPassword(password.Body, salt);

            await _context.SaveChangesAsync();
        }
        public async Task <IActionResult> UpdateUserPassword(int id, PasswordDTO userPassword)
        {
            var findUser = _context.User.Find(id);

            if (findUser != null)
            {
                var decryptedPassword = CommonMethods.WordDecrypter(findUser.Password);

                if (userPassword.OldPassword.Equals(decryptedPassword))
                {
                    var encryptedNewPassword        = CommonMethods.WordEncrypter(userPassword.NewPassword);
                    var encryptedConfirmNewPassword = CommonMethods.WordEncrypter(userPassword.ConfirmNewPassword);

                    findUser.Password        = encryptedNewPassword;
                    findUser.ConfirmPassword = encryptedConfirmNewPassword;
                }
                else
                {
                    return(BadRequest("A senha atual informada está incorreta."));
                }


                _context.Entry(findUser).State = EntityState.Modified;

                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!UserExists(id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
            }



            return(NoContent());
        }
Exemple #15
0
        public UserViewDTO ChangePassword(PasswordDTO dto)
        {
            if (!_validator.IsValidPasswordDTO(dto))
            {
                throw new InvalidUserException(_validator.ValidationResult);
            }

            var user = _repository.FindByEmailAndCPF(dto.email, dto.cpf);

            if (user == null)
            {
                throw new UserNotFoundException();
            }

            user.password = dto.newPassword;
            var userView = _mapper.Map <UserViewDTO>(_repository.Save(user));

            return(userView);
        }
        public static bool UpdatePassword(PasswordDTO psw)
        {
            bool hasBeenChanged = false;

            using (SqlConnection connection = DataBase.GetConnection())
            {
                connection.Open();
                SqlCommand command = connection.CreateCommand();
                command.CommandText = REQ_UPDATE_PASSWORD;
                command.Parameters.AddWithValue($@"{FIELD_PASSWORD}Old", psw.PasswordOld);
                command.Parameters.AddWithValue($@"{FIELD_PASSWORD}New", psw.PasswordNew);

                command.Parameters.AddWithValue($@"{FIELD_ID}", psw.UserID);

                hasBeenChanged = command.ExecuteNonQuery() == 1;
            }

            return(hasBeenChanged);
        }
Exemple #17
0
 public ObjectResult RecoverPassword([FromBody] PasswordDTO dto)
 {
     try
     {
         var userView = _service.ChangePassword(dto);
         return(Ok(userView));
     }
     catch (InvalidUserException ex)
     {
         return(BadRequest(ex.ValidationResult));
     }
     catch (UserNotFoundException ex)
     {
         return(NotFound(ex.Message));
     }
     catch (Exception ex)
     {
         return(StatusCode(500, $"Ocorreu um erro inesperado: {ex.Message}"));
     }
 }
Exemple #18
0
        public async Task ChangePassword(string id, PasswordDTO password, string token)
        {
            if (password == null)
            {
                throw new ArgumentNullException(nameof(password));
            }
            if (password.NewPassword == null)
            {
                throw new ArgumentNullException(nameof(password.NewPassword));
            }
            if (password.OldPassword == null)
            {
                throw new ArgumentNullException(nameof(password.OldPassword));
            }

            string claimsId   = _jwtFactory.GetUserIdClaim(token);
            var    userEntity = await _userManager.FindByIdAsync(id);

            if (userEntity == null)
            {
                throw new ArgumentNullException(nameof(userEntity), "Couldn't find user with this id");
            }

            if (claimsId == id)
            {
                bool checkPassword = await _userManager.CheckPasswordAsync(userEntity, password.OldPassword);

                if (checkPassword == false)
                {
                    throw new ArgumentException(nameof(password));
                }
                else
                {
                    await _userManager.ChangePasswordAsync(userEntity, password.OldPassword, password.NewPassword);
                }
            }
            else
            {
                throw new NotEnoughtRightsException();
            }
        }
        public IActionResult UpdatePassword(long id, PasswordDTO model)
        {
            try
            {
                User user = _dataService.GetById <User>(id);
                if (user == null)
                {
                    return(NotFound());
                }

                user.Password = Encryption.HashPassword(model.Password);

                _dataService.Update(user);

                return(Ok(Mapper.Map <UserDetailDTO>(user)));
            }
            catch (Exception e)
            {
                return(StatusCode(500, e));
            }
        }
Exemple #20
0
        public async Task <IActionResult> ChangePassword([FromBody] PasswordDTO dto)
        {
            if (dto == null)
            {
                return(BadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(dto));
            }

            try
            {
                var result = await _repo.ChangePassword(dto);

                return(new ObjectResult(result));
            }
            catch (Exception exc)
            {
                return(BadRequest(exc));
            }
        }
Exemple #21
0
        public async Task <bool> ChangePassword(int id, PasswordDTO password, string token)
        {
            if (password == null)
            {
                throw new ArgumentNullException(nameof(password));
            }
            if (password.NewPassword == null)
            {
                throw new ArgumentNullException(nameof(password.NewPassword));
            }
            if (password.OldPassword == null)
            {
                throw new ArgumentNullException(nameof(password.OldPassword));
            }

            var requesterId   = _jwtFactory.GetUserIdClaim(token);
            var requesterRole = _jwtFactory.GetUserRoleClaim(token);
            var userEntity    = await _userManager.FindByIdAsync(id.ToString());

            if (userEntity == null)
            {
                throw new EntityNotFoundException(nameof(userEntity), id);
            }

            if (requesterId != id && requesterRole != "Admin")
            {
                throw new NotEnoughRightsException();
            }

            bool checkPassword = await _userManager.CheckPasswordAsync(userEntity, password.OldPassword);

            if (checkPassword == false)
            {
                throw new WrongCredentialsException();
            }
            return((await _userManager.ChangePasswordAsync(userEntity, password.OldPassword, password.NewPassword)).Succeeded);
        }
 public HttpResponseMessage NewPassword(PasswordDTO password, string id)
 {
     try
     {
         if (password.Password == null)
         {
             return(Request.CreateResponse(HttpStatusCode.Forbidden, "Illegal parameter"));
         }
         string msg = AdminService.NewPassword(id, password.Password);
         if (msg == "same")
         {
             return(Request.CreateResponse(HttpStatusCode.BadRequest, "Same password"));
         }
         if (msg == "false")
         {
             return(Request.CreateResponse(HttpStatusCode.NotFound, "User not found or User not local"));
         }
         return(Request.CreateResponse(HttpStatusCode.OK, "Password changed"));
     }
     catch (Exception e)
     {
         return(Request.CreateResponse(HttpStatusCode.InternalServerError, "There was an InternalServerError: " + e));
     }
 }
Exemple #23
0
 //TODO: Powinno dotyczyć CurrentPassword, ale trzeba najpierw zmienić hasła na hashowane tym użytkownikom testowym, którzy jeszcze mają je w plaintexcie
 bool BeEqualToAPwdInDb(PersonChangePasswordDTO user, PasswordDTO pwd)
 {
     return(pwdValidator.BeEqualToAPasswordInDatabase(user.Email, user.CurrentPassword.Value));
 }
Exemple #24
0
 public void DeletePassword(PasswordDTO password)
 {
     Console.WriteLine("Password Delete");
 }
Exemple #25
0
        public async Task <IActionResult> ChangePassword([FromBody] PasswordDTO password)
        {
            await _userService.ChangePassword(password);

            return(Ok());
        }
        public ActionResult Save(PasswordDTO entity)
        {
            var complete = true;

            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    if (ModelState.IsValid)
                    {
                        UserAccountEntity user = AccountRepository.Instance.GetById(CurrentUserId);
                        if (!entity.NewPassword.Equals(entity.NewPasswordConfirmation))
                        {
                            Error("As duas senhas digitadas não conferem.");
                            complete = false;
                        }
                        else if (!PasswordUtils.ValidatePassword(entity.CurrentPassword, user.SecurityStamp, user.PasswordHash))
                        {
                            Error("A senha atual digitada não confere com a vigente.");
                            complete = false;
                        }
                        else
                        {
                            NewRequest request = new NewRequest();

                            request.Password = entity.NewPassword;
                            request.Username = user.UserName;
                            request.Name     = user.UserName;

                            AccountHandler.UpdateUser(request);
                        }



                        if (complete)
                        {
                            Success("Senha atualizada com sucesso.");
                        }

                        scope.Complete();
                    }
                    else
                    {
                        Warning("Alguns campos são obrigatórios para salvar a senha.");

                        return(View("PasswordEdit", entity));
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.LogException(ex);
                Error("Ocorreu um erro ao tentar salvar a senha.", ex);
            }

            if (complete)
            {
                if (IsSystemAdmin)
                {
                    return(Redirect("/admin/empresas/"));
                }
                else
                {
                    if (CurrentWorkerType.ProfileName.Equals(Profiles.ADMINISTRADOR))
                    {
                        return(Redirect("/public/dashboard"));
                    }
                    else
                    {
                        return(Redirect("/public/ranking"));
                    }
                }
            }
            else
            {
                return(Redirect("/admin/usuario/perfil/editarSenha"));
            }
        }
        public async Task <IActionResult> ChangeUserPassword(int id, [FromBody] PasswordDTO model)
        {
            await _userService.ChangePassword(id, model, Request.GetToken());

            return(NoContent());
        }