From: <mb...@re...> - 2004-11-05 23:50:12
|
Author: mbooth Date: 2004-11-06 00:43:05 +0100 (Sat, 06 Nov 2004) New Revision: 87 Modified: ccm-core/trunk/src/com/arsdigita/formbuilder/actions/ConfirmEmailListener.java Log: Don't try to send an email confirmation to the user if they're not logged in. Modified: ccm-core/trunk/src/com/arsdigita/formbuilder/actions/ConfirmEmailListener.java =================================================================== --- ccm-core/trunk/src/com/arsdigita/formbuilder/actions/ConfirmEmailListener.java 2004-11-05 23:42:14 UTC (rev 86) +++ ccm-core/trunk/src/com/arsdigita/formbuilder/actions/ConfirmEmailListener.java 2004-11-05 23:43:05 UTC (rev 87) @@ -18,29 +18,32 @@ */ package com.arsdigita.formbuilder.actions; +import com.arsdigita.formbuilder.PersistentProcessListener; +import com.arsdigita.formbuilder.util.Placeholders; + +import com.arsdigita.bebop.FormProcessException; +import com.arsdigita.bebop.event.FormSectionEvent; +import com.arsdigita.bebop.event.FormProcessListener; +import com.arsdigita.domain.DataObjectNotFoundException; +import com.arsdigita.kernel.Kernel; +import com.arsdigita.kernel.User; +import com.arsdigita.mail.Mail; import com.arsdigita.persistence.OID; import com.arsdigita.persistence.DataObject; import com.arsdigita.persistence.metadata.ObjectType; -import com.arsdigita.domain.DataObjectNotFoundException; -import com.arsdigita.bebop.FormProcessException; -import com.arsdigita.bebop.event.FormSectionEvent; - -import com.arsdigita.formbuilder.PersistentProcessListener; -import com.arsdigita.formbuilder.util.Placeholders; - import java.math.BigDecimal; -import com.arsdigita.formbuilder.util.Placeholders; -import com.arsdigita.mail.Mail; import javax.mail.MessagingException; -import com.arsdigita.bebop.event.FormProcessListener; -import com.arsdigita.util.UncheckedWrapperException; +import org.apache.log4j.Logger; public class ConfirmEmailListener extends PersistentProcessListener { public static final String BASE_DATA_OBJECT_TYPE = "com.arsdigita.formbuilder.actions.ConfirmEmailListener"; + private static final Logger s_log = + Logger.getLogger( ConfirmEmailListener.class ); + public static final String FROM = "from"; public static final String SUBJECT = "subject"; public static final String BODY = "body"; @@ -152,17 +155,22 @@ Placeholders p = new Placeholders(e.getPageState(), e.getFormData()); + User user = (User) Kernel.getContext().getParty(); + if( null == user ) { + s_log.info( "User not logged in. Not sending confirmation" ); + return; + } + String from = p.interpolate(m_from); String subject = p.interpolate(m_subject); String body = p.interpolate(m_body); - //String to = p.interpolate("::user.givenname:: ::user.familyname:: <::user.email::>"); - String to = p.interpolate("::user.email::"); + String to = user.getPrimaryEmail().getEmailAddress(); try { Mail message = new Mail(to, from, subject, body); message.send(); } catch (MessagingException ex) { - throw new UncheckedWrapperException("cannot send message", ex); + throw new FormProcessException("cannot send message", ex); } } } |