public void changePassword(String password) {
   User currentUser = userRepository.findOne(SecurityUtils.getCurrentLogin());
   String encryptedPassword = passwordEncoder.encode(password);
   currentUser.setPassword(encryptedPassword);
   userRepository.save(currentUser);
   log.debug("Changed password for User: {}", currentUser);
 }
 public User createUserInformation(
     String login,
     String password,
     String firstName,
     String lastName,
     String email,
     String langKey) {
   User newUser = new User();
   Authority authority = authorityRepository.findOne("ROLE_USER");
   Set<Authority> authorities = new HashSet<>();
   String encryptedPassword = passwordEncoder.encode(password);
   newUser.setLogin(login);
   // new user gets initially a generated password
   newUser.setPassword(encryptedPassword);
   newUser.setFirstName(firstName);
   newUser.setLastName(lastName);
   newUser.setEmail(email);
   newUser.setLangKey(langKey);
   // new user is not active
   newUser.setActivated(false);
   // new user gets registration key
   newUser.setActivationKey(RandomUtil.generateActivationKey());
   authorities.add(authority);
   newUser.setAuthorities(authorities);
   userRepository.save(newUser);
   log.debug("Created Information for User: {}", newUser);
   return newUser;
 }
 public void updateUserInformation(String firstName, String lastName, String email) {
   User currentUser = userRepository.findOne(SecurityUtils.getCurrentLogin());
   currentUser.setFirstName(firstName);
   currentUser.setLastName(lastName);
   currentUser.setEmail(email);
   userRepository.save(currentUser);
   log.debug("Changed Information for User: {}", currentUser);
 }
 /**
  * Not activated users should be automatically deleted after 3 days.
  *
  * <p>
  *
  * <p>This is scheduled to get fired everyday, at 01:00 (am).
  */
 @Scheduled(cron = "0 0 1 * * ?")
 public void removeNotActivatedUsers() {
   DateTime now = new DateTime();
   List<User> users = userRepository.findNotActivatedUsersByCreationDateBefore(now.minusDays(3));
   for (User user : users) {
     log.debug("Deleting not activated user {}", user.getLogin());
     userRepository.delete(user);
   }
 }
 public User getUserWithAuthorities() {
   User currentUser = userRepository.findOne(SecurityUtils.getCurrentLogin());
   currentUser.getAuthorities().size(); // eagerly load the association
   return currentUser;
 }