Advertisement
Guest User

Untitled

a guest
Oct 5th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1. @Override
  2.     public void update(User user, String oldPassword, String newPassword, String repeatedPassword, String
  3.             positionsIds, String rolesIds, String bossPassword, boolean authRequired) {
  4.  
  5.         String bossName = SecurityContextHolder.getContext().getAuthentication().getName();
  6.         User bossUser = findByUsername(bossName);
  7.         String bossDbPassword = bossUser.getPassword();
  8.         if (!authRequired || (passwordEncoder.matches(bossPassword, bossDbPassword))) {
  9.             checkForNotNew(user);
  10.             checkForUniqueEmailAndPhone(user);
  11.             if (isValidPasswordsData(user, oldPassword, newPassword, repeatedPassword)) {
  12.                 user.setPassword(passwordEncoder.encode(newPassword));
  13.             }
  14.             setPositionsToUser(user, positionsIds);
  15.             setRolesToUser(user, rolesIds);
  16.             setDataFromDatabaseToUser(user);
  17.             setCompany(user);
  18.             updateSessionRegistryAndCache(user);
  19.             userRepository.saveAndFlush(user);
  20.         } else {
  21.             throw new UserDataException("Неверный пароль для подтверждения изменений");
  22.         }
  23.     }
  24.  
  25.     private boolean criticalUserDataUpdated(User updatedUser, User storedUser) {
  26.  
  27.         List<Position> storedUserPositions = storedUser.getPositions();
  28.         List<Position> updatedUserPositions = updatedUser.getPositions();
  29.         List<Role> storedUserRoles = storedUser.getRoles();
  30.         List<Role> updatedUserRoles = updatedUser.getRoles();
  31.  
  32.         boolean positionsEqual = listsEqual(storedUserPositions, updatedUserPositions);
  33.         boolean rolesEqual = listsEqual(storedUserRoles, updatedUserRoles);
  34.         boolean passwordsEqual = storedUser.getPassword().equals(updatedUser.getPassword());
  35.         boolean phonesEqual = storedUser.getPhone().equals(updatedUser.getPhone());
  36.         boolean emailsEqual = storedUser.getEmail().equals(updatedUser.getEmail());
  37.  
  38.         return (!positionsEqual || !rolesEqual || !passwordsEqual || !phonesEqual || !emailsEqual);
  39.     }
  40.  
  41.     private <T> boolean listsEqual(List<T> list1, List<T> list2) {
  42.         return list1!=null && list2!=null && isEqualCollection(list1, list2);
  43.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement