1 package com.dotmarketing.cms.inquiry.action; 2 3 import java.util.Date ; 4 import java.util.Iterator ; 5 import java.util.List ; 6 7 import javax.servlet.http.HttpServletRequest ; 8 import javax.servlet.http.HttpServletResponse ; 9 10 import org.apache.struts.Globals; 11 import org.apache.struts.action.ActionErrors; 12 import org.apache.struts.action.ActionForm; 13 import org.apache.struts.action.ActionForward; 14 import org.apache.struts.action.ActionMapping; 15 import org.apache.struts.action.ActionMessage; 16 import org.apache.struts.action.ActionMessages; 17 import org.apache.struts.actions.DispatchAction; 18 19 import com.dotmarketing.beans.UserProxy; 20 import com.dotmarketing.cms.factories.PublicAddressFactory; 21 import com.dotmarketing.cms.factories.PublicCompanyFactory; 22 import com.dotmarketing.cms.factories.PublicEncryptionFactory; 23 import com.dotmarketing.cms.factories.PublicUserFactory; 24 import com.dotmarketing.cms.inquiry.struts.InquiryForm; 25 import com.dotmarketing.factories.ClickstreamFactory; 26 import com.dotmarketing.factories.InodeFactory; 27 import com.dotmarketing.factories.UserProxyFactory; 28 import com.dotmarketing.portlets.categories.factories.CategoryFactory; 29 import com.dotmarketing.portlets.categories.model.Category; 30 import com.dotmarketing.portlets.user.factories.UserCommentsFactory; 31 import com.dotmarketing.portlets.user.model.UserComment; 32 import com.dotmarketing.util.WebKeys; 33 import com.liferay.portal.ejb.UserLocalManagerUtil; 34 import com.liferay.portal.model.Address; 35 import com.liferay.portal.model.Company; 36 import com.liferay.portal.model.User; 37 38 public class InquiryAction extends DispatchAction { 39 public ActionForward unspecified(ActionMapping mapping, ActionForm lf, HttpServletRequest request, 40 HttpServletResponse response) throws Exception { 41 InquiryForm form = (InquiryForm) lf; 42 User u = (User) request.getSession().getAttribute(WebKeys.CMS_USER); 43 44 45 if (u != null) { 46 47 List adds = PublicAddressFactory.getAddressesByUserId(u.getUserId()); 48 User user = UserLocalManagerUtil.getUserById(u.getUserId()); 49 50 form.setFirstName(user.getFirstName()); 51 form.setLastName(user.getLastName()); 52 form.setUserName(user.getEmailAddress()); 53 form.setMiddleName(u.getMiddleName()); 54 55 56 if (adds != null && adds.size() > 0) { 57 Address a = (Address) adds.get(0); 58 form.setAddress1(a.getStreet1()); 59 form.setAddress2(a.getStreet2()); 60 form.setCity(a.getCity()); 61 form.setState(a.getState()); 62 form.setCountry(a.getCountry()); 63 form.setPhone(a.getPhone()); 64 form.setZip(a.getZip()); 65 66 } 67 UserProxy up = UserProxyFactory.getUserProxy(user); 68 List categories = InodeFactory.getChildrenClass(up, Category.class); 69 Iterator i = categories.iterator(); 70 StringBuffer sb = new StringBuffer (); 71 72 while (i.hasNext()) { 73 Category cat = (Category) i.next(); 74 sb.append("," + cat.getInode()); 75 } 76 77 form.setCategories(sb.toString()); 78 79 } 80 81 CategoryFactory.AddUserCategoriesToRequest(request); 82 83 ActionForward af = (mapping.findForward("inquiryPage")); 84 85 return af; 86 87 } 88 89 public ActionForward inquiry(ActionMapping mapping, ActionForm lf, HttpServletRequest request, HttpServletResponse response) 90 throws Exception { 91 InquiryForm form = (InquiryForm) lf; 92 ActionErrors ae = form.validate(mapping, request); 93 CategoryFactory.AddUserCategoriesToRequest(request); 94 if (ae != null && ae.size() > 0) { 95 saveMessages(request, ae); 96 return mapping.getInputForward(); 97 98 } 99 100 Date today = new Date (); 101 User user = PublicUserFactory.getUserByEmail(form.getUserName()); 102 103 if (user.isNew()) { 105 106 Company company = PublicCompanyFactory.getDefaultCompany(); 108 user.setFirstName(form.getFirstName()); 109 user.setMiddleName(form.getMiddleName()); 110 user.setLastName(form.getLastName()); 111 user.setActive(true); 112 user.setCreateDate(today); 113 user.setEmailAddress(form.getUserName()); 114 user.setCompanyId(company.getCompanyId()); 115 user.setLastLoginIP(request.getRemoteAddr()); 116 user.setLastLoginDate(today); 117 118 user.setLoginIP(request.getRemoteAddr()); 119 user.setLoginDate(today); 120 121 user.setBirthday(today); 122 String pass = PublicEncryptionFactory.getRandomPassword(); 123 form.setPassword(pass); 124 user.setPassword(PublicEncryptionFactory.digestString(pass)); 125 user.setPasswordEncrypted(true); 126 user.setGreeting("Welcome, " + user.getFullName() + "!"); 127 128 User defaultUser = PublicUserFactory.getDefaultUser(); 130 131 user.setLanguageId(defaultUser.getLanguageId()); 132 user.setTimeZoneId(defaultUser.getTimeZoneId()); 133 user.setSkinId(defaultUser.getSkinId()); 134 user.setDottedSkins(defaultUser.isDottedSkins()); 135 user.setRoundedSkins(defaultUser.isRoundedSkins()); 136 137 user.setResolution(defaultUser.getResolution()); 138 user.setRefreshRate(defaultUser.getRefreshRate()); 139 user.setLayoutIds(""); 140 141 PublicUserFactory.save(user); 142 143 Address a = PublicAddressFactory.getInstance(); 145 146 a.setUserId(user.getUserId()); 147 a.setUserName(user.getFullName()); 148 a.setCreateDate(today); 149 a.setModifiedDate(today); 150 a.setPriority(1); 151 a.setCompanyId(company.getCompanyId()); 152 a.setCountry(form.getCountry()); 153 a.setPhone(form.getPhone()); 154 a.setClassName(user.getClass().getName()); 155 a.setClassPK(user.getUserId()); 156 a.setPriority(1); 157 a.setDescription("Primary"); 158 159 PublicAddressFactory.save(a); 160 } 161 162 ClickstreamFactory.setClickStreamUser(user.getUserId(), request); 164 165 UserComment comment = new UserComment(); 166 167 comment.setComment(form.getComments()); 168 comment.setDate(today); 169 comment.setMethod(UserComment.METHOD_WEB); 170 comment.setType(UserComment.TYPE_INCOMING); 171 172 comment.setCommentUserId(user.getUserId()); 173 comment.setUserId(user.getUserId()); 174 UserCommentsFactory.saveUserComment(comment); 175 176 UserProxy up = UserProxyFactory.getUserProxy(user); 178 String [] depts = form.getDepartments(); 179 180 for (int i = 0; depts != null && i < depts.length; i++) { 181 Category cat = (Category) InodeFactory.getInode(depts[i], Category.class); 182 if (cat.getInode() > 0) { 183 up.addChild(cat); 184 } 185 } 186 187 if (!form.isOptOut()) { 189 Category contactMethods = CategoryFactory.getCategoryByKey("contact_methods"); 190 List cats = CategoryFactory.getChildrenCategories(contactMethods); 191 Iterator i = cats.iterator(); 192 while (i.hasNext()) { 193 Category cat = (Category) i.next(); 194 up.addChild(cat); 195 } 196 197 199 } 200 201 InodeFactory.saveInode(up); 202 203 ActionMessages am = new ActionMessages(); 205 am.add(Globals.ERROR_KEY, new ActionMessage("message.inquiryThankYou")); 206 saveMessages(request, am); 207 208 ActionForward af = (mapping.findForward("thankYouPage")); 209 210 return af; 211 } 212 213 } | Popular Tags |