package net.sourceforge.fenixedu.domain.candidate; import java.util.Collections; import net.sourceforge.fenixedu._development.PropertiesManager; import net.sourceforge.fenixedu.domain.RootDomainObject; import net.sourceforge.fenixedu.domain.util.Email; import net.sourceforge.fenixedu.util.LanguageUtils; import org.apache.commons.codec.digest.DigestUtils; import org.apache.commons.lang.StringUtils; import org.apache.struts.util.MessageResources; import pt.ist.fenixWebFramework.services.Service; public class CandidateLoginRequest extends CandidateLoginRequest_Base { private static final String URL = PropertiesManager.getProperty("fenix.base.url") + (StringUtils.isEmpty(PropertiesManager.getProperty("app.context")) ? "" : "/" + PropertiesManager.getProperty("app.context")) + "/candidate/loginRequest.do?method=requestLogin&requestIdentifier="; private CandidateLoginRequest(String email) { super(); setRootDomainObject(RootDomainObject.getInstance()); setCandidateEmail(email); StringBuilder builder = new StringBuilder(getCandidateEmail()); builder.append(getExternalId()); setHash(DigestUtils.md5Hex(builder.toString())); } public static CandidateLoginRequest getLoginRequestForHash(String hash) { for (CandidateLoginRequest request : RootDomainObject.getInstance().getCandidateLoginRequests()) { if (request.getHash().equals(hash)) { return request; } } return null; } @Service public static CandidateLoginRequest newLoginRequest(String email) { CandidateLoginRequest candidateLoginRequest = new CandidateLoginRequest(email); final MessageResources messages = MessageResources.getMessageResources("resources/GlobalResources"); String url = URL + candidateLoginRequest.getHash(); CandidateRegistrationEmailTemplates templates = CandidateRegistrationEmailTemplates.getInstance(); new Email("ISCTE-IUL", messages.getMessage(LanguageUtils.getLocale(), "2ndCicleCandidacies.email.support"), new String[] {}, Collections.singletonList(email), Collections.EMPTY_LIST, Collections.EMPTY_LIST, templates .getFormattedEmailSubjectWithLinkForRegistration(url), templates .getFormattedEmailBodyWithLinkForRegistration(url)); return candidateLoginRequest; } public void delete() { removeRootDomainObject(); super.deleteDomainObject(); } }