1 package com.dotmarketing.cms.subscribe.action; 2 3 import java.util.ArrayList ; 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.action.ActionForm; 11 import org.apache.struts.action.ActionForward; 12 import org.apache.struts.action.ActionMapping; 13 import org.apache.struts.actions.DispatchAction; 14 15 import com.dotmarketing.beans.UserProxy; 16 import com.dotmarketing.cms.factories.PublicUserFactory; 17 import com.dotmarketing.cms.subscribe.struts.MailingListsSubscribeForm; 18 import com.dotmarketing.factories.InodeFactory; 19 import com.dotmarketing.factories.UserProxyFactory; 20 import com.dotmarketing.portlets.mailinglists.factories.MailingListFactory; 21 import com.dotmarketing.portlets.mailinglists.model.MailingList; 22 import com.dotmarketing.util.WebKeys; 23 import com.liferay.portal.model.User; 24 25 31 public class MailingListsSubscribeAction extends DispatchAction { 32 public ActionForward unspecified(ActionMapping mapping, ActionForm lf, HttpServletRequest request, 33 HttpServletResponse response) throws Exception { 34 35 List mailingLists = MailingListFactory.getAllPublicLists(); 36 37 request.setAttribute("mailing_lists", mailingLists); 38 39 request.setAttribute("mailing_list_unsubscribers", WebKeys.MAILING_LIST_UNSUBSCRIBERS); 40 41 String email = request.getParameter("email"); 42 if(email==null) 43 email=""; 44 45 User u = PublicUserFactory.getUserByEmail(email); 46 UserProxy s = UserProxyFactory.getUserProxy(u); 47 if (s.getInode() > 0) { 48 ArrayList inodes = new ArrayList (); 49 Iterator it = mailingLists.iterator(); 50 while (it.hasNext()) { 51 MailingList ml = (MailingList) it.next(); 52 List children = InodeFactory.getChildrenClass(ml, UserProxy.class); 53 if (children.contains(s)) 54 inodes.add(String.valueOf(ml.getInode())); 55 } 56 request.setAttribute("name", u.getFirstName()); 57 request.setAttribute("lastname", u.getLastName()); 58 request.setAttribute("subs_mailing_lists_inodes", inodes); 59 60 } else { 61 request.setAttribute("subs_mailing_lists_inodes", new ArrayList ()); 62 63 } 64 return mapping.findForward("subscribePage"); 65 } 66 67 public ActionForward subscribe(ActionMapping mapping, ActionForm lf, HttpServletRequest request, HttpServletResponse response) 68 throws Exception { 69 70 MailingListsSubscribeForm form = (MailingListsSubscribeForm) lf; 71 if (form.isUnsubscribeFromAll()) { 72 MailingList ml = MailingListFactory.getUnsubscribersMailingList(); 73 User u = PublicUserFactory.getUserByEmail(form.getEmailAddress()); 74 UserProxy s = UserProxyFactory.getUserProxy(u); 75 76 if (s.getInode() > 0) { 77 ml.addChild(s); 78 List mailingLists = MailingListFactory.getAllPublicLists(); 79 Iterator it = mailingLists.iterator(); 80 while (it.hasNext()) { 81 MailingList ml2 = (MailingList) it.next(); 82 ml2.deleteChild(s); 83 } 84 ml.addChild(s); 85 } else { 86 InodeFactory.saveInode(s); 87 ml.addChild(s); 88 } 89 request.setAttribute("subscription", "false"); 90 } else { 91 User u = PublicUserFactory.getUserByEmail(form.getEmailAddress()); 92 UserProxy s = UserProxyFactory.getUserProxy(u); 93 if (s.getInode() > 0) { 94 List mailingLists = MailingListFactory.getAllPublicLists(); 95 Iterator it = mailingLists.iterator(); 96 while (it.hasNext()) { 97 MailingList ml2 = (MailingList) it.next(); 98 ml2.deleteChild(s); 99 } 100 MailingList ml = MailingListFactory.getUnsubscribersMailingList(); 101 ml.deleteChild(s); 102 } else { 103 InodeFactory.saveInode(s); 104 } 105 String [] inodes = form.getMailingListsInodes(); 106 if(inodes != null) { 107 for (int i = 0; i < inodes.length; i++) { 108 MailingList ml = (MailingList) InodeFactory.getInode(inodes[i], MailingList.class); 109 ml.addChild(s); 110 } 111 } 112 request.setAttribute("subscription", "true"); 113 } 114 return mapping.findForward("thankYouPage"); 115 } 116 117 118 119 } | Popular Tags |