@Override
public QueryResult resetPassword(String userId) throws CatalogException {
ParamUtils.checkParameter(userId, "userId");
userDBAdaptor.updateUserLastModified(userId);
String newPassword = StringUtils.randomString(6);
String newCryptPass = cypherPassword(newPassword);
QueryResult<User> user =
userDBAdaptor.get(userId, new QueryOptions(QueryOptions.INCLUDE, UserDBAdaptor.QueryParams.EMAIL.key()), "");
if (user == null || user.getNumResults() != 1) {
throw new CatalogException("Could not retrieve the user e-mail.");
}
String email = user.first().getEmail();
QueryResult queryResult = userDBAdaptor.resetPassword(userId, email, newCryptPass);
String mailUser = this.configuration.getEmail().getFrom();
String mailPassword = this.configuration.getEmail().getPassword();
String mailHost = this.configuration.getEmail().getHost();
String mailPort = this.configuration.getEmail().getPort();
MailUtils.sendResetPasswordMail(email, newPassword, mailUser, mailPassword, mailHost, mailPort);
return queryResult;
}
}