KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > cms > createaccount > action > CreateAccountAction


1 package com.dotmarketing.cms.createaccount.action;
2
3 import java.util.Date JavaDoc;
4
5 import javax.servlet.http.HttpServletRequest JavaDoc;
6 import javax.servlet.http.HttpServletResponse JavaDoc;
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 JavaDoc request,
43             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
44         loadUser(lf,request);
45         ActionForward af = mapping.findForward("createAccount");
46         return af;
47     }
48
49     public ActionForward resetForm(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request,
50             HttpServletResponse JavaDoc response) throws Exception JavaDoc {
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 JavaDoc("finally")
62     public ActionForward quickCreate(ActionMapping mapping, ActionForm lf, HttpServletRequest JavaDoc request,
63             HttpServletResponse JavaDoc 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             //End Validate form
73
createAccount(form, request, response);
74             sendEmail(form,request);
75             
76             //Login the user
77
LoginForm loginForm = new LoginForm();
78             loginForm.setUserName(form.getUserName());
79             loginForm.setPassword(form.getPassword1());
80             
81             //Verify the session.redirect
82
if (request.getSession().getAttribute(WebKeys.REDIRECT_AFTER_LOGIN) == null)
83             {
84                 ActionForward af = mapping.findForward("myAccountPage");
85                 String JavaDoc 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 JavaDoc 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 JavaDoc("unchecked")
106     private void createAccount(CreateAccountForm form, HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) {
107
108         CreateAccountForm createAccountForm = (CreateAccountForm) form;
109         User user = PublicUserFactory.getUserByEmail(form.getUserName());
110         User defaultUser = PublicUserFactory.getDefaultUser();
111         Date JavaDoc today = new Date JavaDoc();
112         
113         //### CREATE USER ###
114
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         //Set defaults values
131
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         //### CREATE USER_PROXY ###
148
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         //### END CRETE USER_PROXY ###
155

156         //### END CREATE USER COMMENT###
157
UserComment userComments = new UserComment();
158         userComments.setUserId(userProxy.getUserId());
159         userComments.setCommentUserId(user.getUserId());
160         userComments.setDate(new java.util.Date JavaDoc());
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             //Subscribe to the mailing list
170
MyAccountAction.subscribeDotCMSMailingList(user);
171         }
172         
173         Role defaultRole = PublicRoleFactory.findRoleByName(Config.getStringProperty("CMS_VIEWER_ROLE"));
174         String JavaDoc 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 JavaDoc("unchecked")
182     private void loadUser(ActionForm form, HttpServletRequest JavaDoc 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                 //### LOAD USER ###
191
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                 //### END LOAD USER ###
196

197                 //### LOAD USER_PROXY ###
198
UserProxy userProxy = UserProxyFactory.getUserProxy(user.getUserId());
199                 createAccountForm.setOrganization(userProxy.getOrganization());
200                 createAccountForm.setMailSubscription(userProxy.isMailSubscription());
201                 createAccountForm.setWebsite(userProxy.getWebsite());
202                 //### END LOAD USER_PROXY ###
203

204             }
205         }
206     }
207     
208     public void sendEmail(CreateAccountForm form, HttpServletRequest JavaDoc request)
209     {
210         Mailer mailer = new Mailer();
211         
212         //### CREATE MAIL ###
213
StringBuffer JavaDoc body = new StringBuffer JavaDoc();
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         //email
218
String JavaDoc email = (UtilMethods.isSet(form.getUserName()) ? form.getUserName() : "&nbsp;");
219         body.append("<tr><td valign=\"top\"><b>Email Address:</b></td><td>" + email + "</td></tr>");
220         //first name
221
String JavaDoc firstName = (UtilMethods.isSet(form.getFirstName()) ? form.getFirstName() : "&nbsp;");
222         body.append("<tr><td valign=\"top\"><b>First Name:</b></td><td>" + firstName + "</td></tr>");
223         //last name
224
String JavaDoc lastName = (UtilMethods.isSet(form.getLastName()) ? form.getLastName() : "&nbsp;");
225         body.append("<tr><td valign=\"top\"><b>Last Name:</b></td><td>" + lastName + "</td></tr>");
226         //title
227
//organization
228
String JavaDoc organization = (UtilMethods.isSet(form.getOrganization()) ? form.getOrganization() : "&nbsp;");
229         body.append("<tr><td valign=\"top\"><b>Organization:</b></td><td>" + organization + "</td></tr>");
230         //URL
231
String JavaDoc webSite = (UtilMethods.isSet(form.getWebsite()) ? form.getWebsite() : "&nbsp;");
232         body.append("<tr><td valign=\"top\"><b>webSite:</b></td><td>" + webSite + "</td></tr>");
233         //comments
234
String JavaDoc comments = (UtilMethods.isSet(form.getComments()) ? form.getComments() : "&nbsp;");
235         body.append("<tr><td valign=\"top\"><b>Comment:</b></td><td>" + comments + "</td></tr>");
236         //end table
237
body.append("</table>");
238
239         String JavaDoc emailBody = body.toString();
240         //### END CREATE MAIL ###
241
Company company = PublicCompanyFactory.getDefaultCompany();
242         
243         String JavaDoc toEmail = request.getParameter("toEmail");
244         String JavaDoc subject = request.getParameter("subject");
245         String JavaDoc fromName = request.getParameter("fromName");
246         String JavaDoc 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