1 package com.dotmarketing.cms.createaccount.action; 2 3 import java.util.Date ; 4 5 import javax.servlet.http.HttpServletRequest ; 6 import javax.servlet.http.HttpServletResponse ; 7 8 import org.apache.commons.logging.LogFactory; 9 import org.apache.struts.action.ActionErrors; 10 import org.apache.struts.action.ActionForm; 11 import org.apache.struts.action.ActionForward; 12 import org.apache.struts.action.ActionMapping; 13 import org.apache.struts.action.ActionMessage; 14 import org.apache.struts.action.ActionMessages; 15 import org.apache.struts.actions.DispatchAction; 16 17 import com.dotmarketing.beans.UserProxy; 18 import com.dotmarketing.cms.createaccount.struts.CreateAccountForm; 19 import com.dotmarketing.cms.factories.PublicCompanyFactory; 20 import com.dotmarketing.cms.factories.PublicEncryptionFactory; 21 import com.dotmarketing.cms.factories.PublicRoleFactory; 22 import com.dotmarketing.cms.factories.PublicUserFactory; 23 import com.dotmarketing.cms.inquiry.struts.InquiryForm; 24 import com.dotmarketing.cms.login.action.LoginAction; 25 import com.dotmarketing.cms.login.factories.LoginFactory; 26 import com.dotmarketing.cms.login.struts.LoginForm; 27 import com.dotmarketing.cms.myaccount.action.MyAccountAction; 28 import com.dotmarketing.factories.UserProxyFactory; 29 import com.dotmarketing.portlets.categories.factories.CategoryFactory; 30 import com.dotmarketing.portlets.user.factories.UserCommentsFactory; 31 import com.dotmarketing.portlets.user.model.UserComment; 32 import com.dotmarketing.util.Config; 33 import com.dotmarketing.util.Logger; 34 import com.dotmarketing.util.Mailer; 35 import com.dotmarketing.util.UtilMethods; 36 import com.dotmarketing.util.WebKeys; 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 CreateAccountAction extends DispatchAction { 42 public ActionForward unspecified(ActionMapping mapping, ActionForm lf, HttpServletRequest request, 43 HttpServletResponse response) throws Exception { 44 loadUser(lf,request); 45 ActionForward af = mapping.findForward("createAccount"); 46 return af; 47 } 48 49 public ActionForward resetForm(ActionMapping mapping, ActionForm lf, HttpServletRequest request, 50 HttpServletResponse response) throws Exception { 51 lf = new CreateAccountForm(); 52 53 request.getSession().setAttribute("createAccountForm", lf); 54 55 CategoryFactory.AddUserCategoriesToRequest(request); 56 57 return unspecified(mapping, lf, request, response); 58 } 59 60 61 @SuppressWarnings ("finally") 62 public ActionForward quickCreate(ActionMapping mapping, ActionForm lf, HttpServletRequest request, 63 HttpServletResponse response) { 64 CreateAccountForm form = (CreateAccountForm) lf; 65 ActionErrors ae = form.validate(mapping, request); 66 try 67 { 68 if ((ae != null) && (ae.size() > 0)) { 69 saveMessages(request, ae); 70 return mapping.findForward("createAccount"); 71 } 72 createAccount(form, request, response); 74 sendEmail(form,request); 75 76 LoginForm loginForm = new LoginForm(); 78 loginForm.setUserName(form.getUserName()); 79 loginForm.setPassword(form.getPassword1()); 80 81 if (request.getSession().getAttribute(WebKeys.REDIRECT_AFTER_LOGIN) == null) 83 { 84 ActionForward af = mapping.findForward("myAccountPage"); 85 String path = af.getPath(); 86 request.getSession().setAttribute(WebKeys.REDIRECT_AFTER_LOGIN,path); 87 } 88 89 LoginAction la = new LoginAction(); 90 ActionForward af = la.login(mapping,loginForm,request,response); 91 92 ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.createaccount.success")); 93 saveMessages(request, ae); 94 return af; 95 } 96 catch(Exception ex) 97 { 98 Logger.debug(this,ex.toString()); 99 ae.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("message.createaccount.failure")); 100 saveMessages(request, ae); 101 return mapping.findForward("createAccount"); 102 } 103 } 104 105 @SuppressWarnings ("unchecked") 106 private void createAccount(CreateAccountForm form, HttpServletRequest request, HttpServletResponse response) { 107 108 CreateAccountForm createAccountForm = (CreateAccountForm) form; 109 User user = PublicUserFactory.getUserByEmail(form.getUserName()); 110 User defaultUser = PublicUserFactory.getDefaultUser(); 111 Date today = new Date (); 112 113 Company company = PublicCompanyFactory.getDefaultCompany(); 115 user.setEmailAddress(createAccountForm.getUserName()); 116 user.setFirstName(createAccountForm.getFirstName() == null ? "" : form.getFirstName()); 117 user.setLastName(createAccountForm.getLastName() == null ? "" : form.getLastName()); 118 user.setNickName(""); 119 user.setMiddleName(""); 120 user.setCompanyId(company.getCompanyId()); 121 user.setLastLoginIP(request.getRemoteAddr()); 122 user.setLastLoginDate(today); 123 user.setLoginIP(request.getRemoteAddr()); 124 user.setLoginDate(today); 125 user.setPasswordEncrypted(true); 126 user.setPassword(PublicEncryptionFactory.digestString(form.getPassword1())); 127 user.setComments(form.getComments()); 128 user.setGreeting("Welcome, " + user.getFullName() + "!"); 129 130 if(user.isNew()) 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 146 147 UserProxy userProxy = UserProxyFactory.getUserProxy(user.getUserId()); 149 userProxy.setUserId(user.getUserId()); 150 userProxy.setWebsite(createAccountForm.getWebsite()); 151 userProxy.setOrganization(createAccountForm.getOrganization()); 152 userProxy.setMailSubscription(createAccountForm.isMailSubscription()); 153 UserProxyFactory.saveUserProxy(userProxy); 154 156 UserComment userComments = new UserComment(); 158 userComments.setUserId(userProxy.getUserId()); 159 userComments.setCommentUserId(user.getUserId()); 160 userComments.setDate(new java.util.Date ()); 161 userComments.setComment(form.getComments()); 162 userComments.setTypeComment("incoming"); 163 userComments.setSubject("User Comment"); 164 userComments.setMethod("Regular"); 165 166 UserCommentsFactory.saveUserComment(userProxy.getInode(),userComments); 167 168 if (form.isMailSubscription()) { 169 MyAccountAction.subscribeDotCMSMailingList(user); 171 } 172 173 Role defaultRole = PublicRoleFactory.findRoleByName(Config.getStringProperty("CMS_VIEWER_ROLE")); 174 String roleId = defaultRole.getRoleId(); 175 if (UtilMethods.isSet(roleId)) { 176 PublicRoleFactory.addRoleToUser(roleId, user); 177 } 178 LoginFactory.doLogin(form.getUserName(), form.getPassword1(), true, request, response); 179 } 180 181 @SuppressWarnings ("unchecked") 182 private void loadUser(ActionForm form, HttpServletRequest request) 183 { 184 CreateAccountForm createAccountForm = (CreateAccountForm) form; 185 if(UtilMethods.isSet(createAccountForm.getUserName())) 186 { 187 User user = PublicUserFactory.getUserByEmail(createAccountForm.getUserName()); 188 if(user != null) 189 { 190 createAccountForm.setUserName(user.getEmailAddress()); 192 createAccountForm.setFirstName(user.getFirstName() == null ? "" : user.getFirstName()); 193 createAccountForm.setLastName(user.getLastName() == null ? "" : user.getLastName()); 194 createAccountForm.setComments(user.getComments()); 195 197 UserProxy userProxy = UserProxyFactory.getUserProxy(user.getUserId()); 199 createAccountForm.setOrganization(userProxy.getOrganization()); 200 createAccountForm.setMailSubscription(userProxy.isMailSubscription()); 201 createAccountForm.setWebsite(userProxy.getWebsite()); 202 204 } 205 } 206 } 207 208 public void sendEmail(CreateAccountForm form, HttpServletRequest request) 209 { 210 Mailer mailer = new Mailer(); 211 212 StringBuffer body = new StringBuffer (); 214 215 body.append("<table border=\"1\">"); 216 body.append("<tr><td align=\"center\"><b>FIELD</b></td><td align=\"center\"><b>VALUE</b></td></tr>"); 217 String email = (UtilMethods.isSet(form.getUserName()) ? form.getUserName() : " "); 219 body.append("<tr><td valign=\"top\"><b>Email Address:</b></td><td>" + email + "</td></tr>"); 220 String firstName = (UtilMethods.isSet(form.getFirstName()) ? form.getFirstName() : " "); 222 body.append("<tr><td valign=\"top\"><b>First Name:</b></td><td>" + firstName + "</td></tr>"); 223 String lastName = (UtilMethods.isSet(form.getLastName()) ? form.getLastName() : " "); 225 body.append("<tr><td valign=\"top\"><b>Last Name:</b></td><td>" + lastName + "</td></tr>"); 226 String organization = (UtilMethods.isSet(form.getOrganization()) ? form.getOrganization() : " "); 229 body.append("<tr><td valign=\"top\"><b>Organization:</b></td><td>" + organization + "</td></tr>"); 230 String webSite = (UtilMethods.isSet(form.getWebsite()) ? form.getWebsite() : " "); 232 body.append("<tr><td valign=\"top\"><b>webSite:</b></td><td>" + webSite + "</td></tr>"); 233 String comments = (UtilMethods.isSet(form.getComments()) ? form.getComments() : " "); 235 body.append("<tr><td valign=\"top\"><b>Comment:</b></td><td>" + comments + "</td></tr>"); 236 body.append("</table>"); 238 239 String emailBody = body.toString(); 240 Company company = PublicCompanyFactory.getDefaultCompany(); 242 243 String toEmail = request.getParameter("toEmail"); 244 String subject = request.getParameter("subject"); 245 String fromName = request.getParameter("fromName"); 246 String fromEmail = request.getParameter("fromEmail"); 247 248 toEmail = (UtilMethods.isSet(toEmail) ? toEmail : Config.getStringProperty("CREATE_ACCOUNT_MAIL_ADDRESS")); 249 subject = (UtilMethods.isSet(subject) ? subject : Config.getStringProperty("CREATE_ACCOUNT_MAIL_SUBJECT")); 250 fromName = (UtilMethods.isSet(fromName) ? fromName : Config.getStringProperty("CREATE_ACCOUNT_MAIL_NAME")); 251 fromEmail = (UtilMethods.isSet(fromEmail) ? fromEmail : Config.getStringProperty("CREATE_ACCOUNT_MAIL_RETURN_ADDRESS")); 252 fromName = (UtilMethods.isSet(fromName) ? fromName : company.getName()); 253 fromEmail = (UtilMethods.isSet(fromEmail) ? fromEmail : company.getEmailAddress()); 254 255 mailer.setToEmail(toEmail); 256 mailer.setSubject(subject); 257 mailer.setFromName(fromName); 258 mailer.setFromEmail(fromEmail); 259 mailer.setHTMLBody(emailBody); 260 mailer.sendMessage(); 261 } 262 } | Popular Tags |