String userId = strTok.nextToken();
String linkExpirationDateStr = strTok.nextToken();
Date linkExpirationDate = UtilMethods.jdbcToDate(linkExpirationDateStr);
User user = APILocator.getUserAPI().loadUserById(userId,APILocator.getUserAPI().getSystemUser(),false);
ActionMessages am = new ActionMessages();
if (!user.isNew()) {
// the user exists
if (!user.isActive()) {
if (linkExpirationDate.after(new Date())) {
user.setActive(true);
APILocator.getUserAPI().save(user, APILocator.getUserAPI().getSystemUser(), false);
//Logging in the user
Company comp = com.dotmarketing.cms.factories.PublicCompanyFactory.getDefaultCompany();
if (comp.getAuthType().equals(Company.AUTH_TYPE_EA)) {
LoginFactory.doLogin(user.getEmailAddress(), user.getPassword(), false, request, response);
} else {
LoginFactory.doLogin(user.getUserId(), user.getPassword(), false, request, response);
}
am.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.account.user.activated"));
saveMessages(request.getSession(), am);
ActionForward forward = mapping.findForward("confirmation");
return forward;
}
else {
// resending activation account link
request.setAttribute("userId", user.getUserId());
return mapping.findForward("resendPage");
}
}
else {
am.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.account.user.already.active"));
saveMessages(request.getSession(), am);
ActionForward forward = mapping.findForward("confirmation");
return forward;
}
}
// the user does not exists
am.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("errors.user.not.exist"));
saveMessages(request.getSession(), am);
return mapping.findForward("loginPage");
}