@Override @RunAsSystem public UserDetails loadUserByUsername(String username) { User user = dataService .query(UserMetaData.USER, User.class) .eq(UserMetaData.USERNAME, username) .findOne(); if (user == null) { throw new UsernameNotFoundException("unknown user '" + username + "'"); } Collection<? extends GrantedAuthority> authorities = getAuthorities(user); return new org.springframework.security.core.userdetails.User( user.getUsername(), user.getPassword(), user.isActive(), true, true, true, authorities); }
@Override @RunAsSystem public void changePassword(String username, String newPassword) { User user = dataService.query(USER, User.class).eq(USERNAME, username).findOne(); if (user == null) { throw new MolgenisUserException(format("Unknown user [%s]", username)); } if (!user.isActive()) { throw new DisabledException(MolgenisLoginController.ERROR_MESSAGE_DISABLED); } user.setPassword(newPassword); user.setChangePassword(false); dataService.update(USER, user); LOG.info("Changed password of user [{}]", username); }
UserViewData(User mu) { this(mu.getId(), mu.getUsername()); firstName = (null == mu.getFirstName() ? "" : mu.getFirstName()); middleName = (null == mu.getMiddleNames() ? "" : mu.getMiddleNames()); lastName = (null == mu.getLastName() ? "" : mu.getLastName()); fullName = firstName + ' ' + middleName + ' ' + lastName; this.active = mu.isActive(); this.superuser = mu.isSuperuser(); }
@Override @RunAsSystem public void resetPassword(String userEmail) { User user = dataService.query(USER, User.class).eq(EMAIL, userEmail).findOne(); if (user != null) { if (!user.isActive()) { throw new DisabledException(MolgenisLoginController.ERROR_MESSAGE_DISABLED); } String newPassword = idGenerator.generateId(SHORT_SECURE_RANDOM); user.setPassword(newPassword); user.setChangePassword(true); dataService.update(USER, user); // send password reseted email to user SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setTo(user.getEmail()); mailMessage.setSubject("Your new password request"); mailMessage.setText(createPasswordResettedEmailText(newPassword)); mailSender.send(mailMessage); } else { throw new MolgenisUserException("Invalid email address."); } }