1 package com.dotmarketing.cms.contactus.action; 2 3 import java.util.Date ; 4 import java.util.List ; 5 6 import javax.servlet.http.HttpServletRequest ; 7 import javax.servlet.http.HttpServletResponse ; 8 9 import org.apache.struts.Globals; 10 import org.apache.struts.action.ActionErrors; 11 import org.apache.struts.action.ActionForm; 12 import org.apache.struts.action.ActionForward; 13 import org.apache.struts.action.ActionMapping; 14 import org.apache.struts.action.ActionMessage; 15 import org.apache.struts.action.ActionMessages; 16 import org.apache.struts.actions.DispatchAction; 17 18 import com.dotmarketing.beans.UserProxy; 19 import com.dotmarketing.cms.factories.PublicAddressFactory; 20 import com.dotmarketing.cms.factories.PublicCompanyFactory; 21 import com.dotmarketing.cms.factories.PublicEncryptionFactory; 22 import com.dotmarketing.cms.factories.PublicRoleFactory; 23 import com.dotmarketing.cms.factories.PublicUserFactory; 24 import com.dotmarketing.cms.inquiry.struts.InquiryForm; 25 import com.dotmarketing.db.DotHibernate; 26 import com.dotmarketing.factories.ClickstreamFactory; 27 import com.dotmarketing.factories.UserProxyFactory; 28 import com.dotmarketing.portlets.user.factories.UserCommentsFactory; 29 import com.dotmarketing.portlets.user.model.UserComment; 30 import com.dotmarketing.util.Config; 31 import com.dotmarketing.util.Logger; 32 import com.dotmarketing.util.Mailer; 33 import com.dotmarketing.util.UtilMethods; 34 import com.dotmarketing.util.WebKeys; 35 import com.liferay.portal.ejb.UserLocalManagerUtil; 36 import com.liferay.portal.model.Address; 37 import com.liferay.portal.model.Company; 38 import com.liferay.portal.model.Role; 39 import com.liferay.portal.model.User; 40 41 public class ContactUsAction extends DispatchAction { 42 public ActionForward unspecified(ActionMapping mapping, ActionForm lf, HttpServletRequest request, HttpServletResponse response) throws Exception { 43 44 InquiryForm form = (InquiryForm) lf; 45 User u = (User) request.getSession().getAttribute(WebKeys.CMS_USER); 46 47 if (u != null) { 48 49 List adds = PublicAddressFactory.getAddressesByUserId(u.getUserId()); 50 User user = UserLocalManagerUtil.getUserById(u.getUserId()); 51 52 form.setFirstName(user.getFirstName()); 53 form.setLastName(user.getLastName()); 54 form.setUserName(user.getEmailAddress()); 55 if (adds != null && adds.size() > 0) { 56 Address a = (Address) adds.get(0); 57 form.setPhone(a.getPhone()); 58 } 59 } 60 61 ActionForward af = (mapping.findForward("contactUsPage")); 62 63 return af; 64 65 } 66 67 public ActionForward contactUs(ActionMapping mapping, ActionForm lf, HttpServletRequest request, HttpServletResponse response) throws Exception { 68 try { 69 DotHibernate.startTransaction(); 71 InquiryForm form = (InquiryForm) lf; 72 73 ActionErrors ae = form.validate(mapping, request); 74 if ((ae != null) && (ae.size() > 0)) { 75 saveMessages(request, ae); 76 ActionForward af = (mapping.findForward("contactUsPage")); 77 return af; 78 } 79 80 createAccount(form, request); 81 sendEmail(form, request); 82 83 DotHibernate.commitTransaction(); 85 86 ActionMessages am = new ActionMessages(); 87 am.add(Globals.ERROR_KEY, new ActionMessage("message.contactUsThankYou")); 88 saveMessages(request, am); 89 90 ActionForward af = (mapping.findForward("thankYouPage")); 91 return af; 92 } catch (Exception ex) { 93 Logger.debug(ex.toString()); 94 DotHibernate.rollbackTransaction(); 95 96 ActionMessages am = new ActionMessages(); 97 am.add(Globals.ERROR_KEY, new ActionMessage("message.contactUsError")); 98 saveMessages(request, am); 99 100 ActionForward af = (mapping.findForward("contactUsPage")); 101 return af; 102 } 103 } 104 105 private void createAccount(InquiryForm form, HttpServletRequest request) { 106 107 User user = PublicUserFactory.getUserByEmail(form.getEmail()); 108 User defaultUser = PublicUserFactory.getDefaultUser(); 109 Date today = new Date (); 110 111 Company company = PublicCompanyFactory.getDefaultCompany(); 113 user.setEmailAddress(form.getEmail()); 114 user.setFirstName(form.getFirstName() == null ? "" : form.getFirstName()); 115 user.setMiddleName(form.getMiddleName() == null ? "" : form.getMiddleName()); 116 user.setLastName(form.getLastName() == null ? "" : form.getLastName()); 117 user.setNickName(""); 118 user.setCompanyId(company.getCompanyId()); 119 user.setLastLoginIP(request.getRemoteAddr()); 120 user.setLastLoginDate(today); 121 user.setLoginIP(request.getRemoteAddr()); 122 user.setLoginDate(today); 123 user.setPasswordEncrypted(true); 124 user.setComments(form.getComments()); 125 user.setGreeting("Welcome, " + user.getFullName() + "!"); 126 127 if (user.isNew()) { 129 String pass = PublicEncryptionFactory.getRandomPassword(); 130 form.setPassword(pass); 131 user.setPassword(PublicEncryptionFactory.digestString(form.getPassword())); 132 133 user.setLanguageId(defaultUser.getLanguageId()); 134 user.setTimeZoneId(defaultUser.getTimeZoneId()); 135 user.setSkinId(defaultUser.getSkinId()); 136 user.setDottedSkins(defaultUser.isDottedSkins()); 137 user.setRoundedSkins(defaultUser.isRoundedSkins()); 138 user.setResolution(defaultUser.getResolution()); 139 user.setRefreshRate(defaultUser.getRefreshRate()); 140 user.setLayoutIds(""); 141 user.setActive(true); 142 user.setCreateDate(today); 143 } 144 PublicUserFactory.save(user); 145 147 UserProxy userProxy = UserProxyFactory.getUserProxy(user.getUserId()); 149 userProxy.setPrefix(""); 150 userProxy.setTitle(form.getTitle()); 151 userProxy.setOrganization(form.getOrganization()); 152 userProxy.setUserId(user.getUserId()); 153 UserProxyFactory.saveUserProxy(userProxy); 154 156 try { 158 List <Address> addresses = PublicAddressFactory.getAddressesByUserId(user.getUserId()); 159 Address address = (addresses.size() > 0 ? addresses.get(0) : PublicAddressFactory.getInstance()); 160 address.setStreet1(form.getAddress1() == null ? "" : form.getAddress1()); 161 address.setStreet2(form.getAddress2() == null ? "" : form.getAddress2()); 162 address.setCity(form.getCity() == null ? "" : form.getCity()); 163 address.setState(form.getState() == null ? "" : form.getState()); 164 address.setZip(form.getZip() == null ? "" : form.getZip()); 165 String phone = form.getPhone(); 167 address.setPhone(phone == null ? "" : phone); 168 address.setUserId(user.getUserId()); 169 address.setCompanyId(company.getCompanyId()); 170 PublicAddressFactory.save(address); 171 } catch (Exception ex) { 172 ex.printStackTrace(); 173 Logger.debug(this, ex.toString()); 174 } 175 177 205 210 211 if (UtilMethods.isSet(form.getMessage())) { 213 UserComment comment = new UserComment(); 214 215 comment.setComment(form.getMessage()); 216 comment.setDate(today); 217 comment.setMethod(UserComment.METHOD_WEB); 218 comment.setType(UserComment.TYPE_INCOMING); 219 comment.setSubject("User Message"); 220 comment.setCommentUserId(user.getUserId()); 221 comment.setUserId(user.getUserId()); 222 UserCommentsFactory.saveUserComment(comment); 223 } 224 225 227 Role defaultRole = PublicRoleFactory.findRoleByName(Config.getStringProperty("CMS_VIEWER_ROLE")); 228 String roleId = defaultRole.getRoleId(); 229 if (UtilMethods.isSet(roleId)) { 230 PublicRoleFactory.addRoleToUser(roleId, user); 231 } 232 233 234 ClickstreamFactory.setClickStreamUser(user.getUserId(), request); 235 236 } 237 238 public void sendEmail(InquiryForm form, HttpServletRequest request) { 239 Mailer mailer = new Mailer(); 240 241 StringBuffer body = new StringBuffer (); 243 244 body.append("<table border=\"1\">"); 245 body.append("<tr><td align=\"center\"><b>FIELD</b></td><td align=\"center\"><b>VALUE</b></td></tr>"); 246 String email = (UtilMethods.isSet(form.getEmail()) ? form.getEmail() : " "); 248 body.append("<tr><td valign=\"top\"><b>Email Address:</b></td><td>" + email + "</td></tr>"); 249 String firstName = (UtilMethods.isSet(form.getFirstName()) ? form.getFirstName() : " "); 251 body.append("<tr><td valign=\"top\"><b>First Name:</b></td><td>" + firstName + "</td></tr>"); 252 String lastName = (UtilMethods.isSet(form.getLastName()) ? form.getLastName() : " "); 254 body.append("<tr><td valign=\"top\"><b>Last Name:</b></td><td>" + lastName + "</td></tr>"); 255 String title = (UtilMethods.isSet(form.getTitle()) ? form.getTitle() : " "); 257 body.append("<tr><td valign=\"top\"><b>Title:</b></td><td>" + title + "</td></tr>"); 258 String organization = (UtilMethods.isSet(form.getOrganization()) ? form.getOrganization() : " "); 260 body.append("<tr><td valign=\"top\"><b>Organization:</b></td><td>" + organization + "</td></tr>"); 261 String phone = (UtilMethods.isSet(form.getPhone()) ? form.getPhone() : ""); 263 body.append("<tr><td valign=\"top\"><b>Phone:</b></td><td>" + phone + "</td></tr>"); 264 String comments = (UtilMethods.isSet(form.getMessage()) ? form.getMessage() : " "); 266 body.append("<tr><td valign=\"top\"><b>Comment:</b></td><td>" + comments + "</td></tr>"); 267 body.append("</table>"); 269 270 String emailBody = body.toString(); 271 Company company = PublicCompanyFactory.getDefaultCompany(); 273 274 String toEmail = request.getParameter("toEmail"); 275 String subject = request.getParameter("subject"); 276 String fromName = request.getParameter("fromName"); 277 String fromEmail = request.getParameter("fromEmail"); 278 279 toEmail = (UtilMethods.isSet(toEmail) ? toEmail : Config.getStringProperty("CONTACT_US_MAIL_ADDRESS")); 280 subject = (UtilMethods.isSet(subject) ? subject : Config.getStringProperty("CONTACT_US_MAIL_SUBJECT")); 281 fromName = (UtilMethods.isSet(fromName) ? fromName : Config.getStringProperty("CONTACT_US_MAIL_NAME")); 282 fromEmail = (UtilMethods.isSet(fromEmail) ? fromEmail : Config.getStringProperty("CONTACT_US_MAIL_RETURN_ADDRESS")); 283 284 fromName = (UtilMethods.isSet(fromName) ? fromName : company.getName()); 285 fromEmail = (UtilMethods.isSet(fromEmail) ? fromEmail : company.getEmailAddress()); 286 287 mailer.setToEmail(toEmail); 288 mailer.setSubject(subject); 289 mailer.setFromName(fromName); 290 mailer.setFromEmail(fromEmail); 291 mailer.setHTMLBody(emailBody); 292 mailer.sendMessage(); 293 } 294 } | Popular Tags |