SlideShare a Scribd company logo
1 of 4
package com.liferay.portlet.newsletter.action;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Set;

import com.liferay.portal.DuplicateGroupException;
import com.liferay.portal.GroupFriendlyURLException;
import com.liferay.portal.GroupNameException;
import com.liferay.portal.NoSuchGroupException;
import com.liferay.portal.RequiredGroupException;
import com.liferay.portal.model.Group;
import com.liferay.portal.model.Role;
import com.liferay.portal.model.User;
import com.liferay.portal.model.UserGroup;
import com.liferay.portal.security.auth.PrincipalException;
import com.liferay.portal.service.GroupLocalServiceUtil;
import com.liferay.portal.service.GroupServiceUtil;
import com.liferay.portal.service.RoleLocalServiceUtil;
import com.liferay.portal.service.UserGroupLocalServiceUtil;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portal.service.persistence.RoleFinder;
import com.liferay.portal.service.persistence.UserUtil;
import com.liferay.portal.struts.PortletAction;
import com.liferay.portal.util.Constants;
import com.liferay.portal.util.PortalUtil;
import com.liferay.portal.util.WebKeys;
import com.liferay.portal.util.comparator.ContactLastNameComparator;
import com.liferay.util.ParamUtil;
import com.liferay.util.Validator;
import com.liferay.util.dao.hibernate.QueryUtil;
import com.liferay.util.mail.MailEngine;
import com.liferay.util.servlet.SessionErrors;

import javax.mail.internet.InternetAddress;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletConfig;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class SendEmail extends PortletAction {

public void processAction(
ActionMapping mapping, ActionForm form, PortletConfig config,
ActionRequest req, ActionResponse res)
throws Exception {

String[] userIds = req.getParameterValues("selected-users");
String[] userGroupIds = req.getParameterValues("selected-usergroups");
String[] groupIds = req.getParameterValues("selected-groups");
String[] roleIds = req.getParameterValues("selected-roles");

List addresses = new ArrayList();

List tempList = new ArrayList();

LinkedHashMap userParams = new LinkedHashMap();

// Get all users in the selected groups
if (userGroupIds != null) {
for (int i = 0; i < userGroupIds.length; i++) {

UserGroup UG = UserGroupLocalServiceUtil.getUserGroup(userGroupIds);

userParams.put("usersUserGroups", UG.getUserGroupId());

tempList = UserLocalServiceUtil.search(PortalUtil.getCompanyId(req), null, null, null,
null, true, userParams, true, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);

for (int j = 0; j < tempList.size(); j++) {
addresses.add(tempList.get(j));
}
}
}
userParams = new LinkedHashMap();
// now communities
if (groupIds != null) {
for (int i = 0; i < groupIds.length; i++) {
System.out.println(groupIds);
Group group =
GroupLocalServiceUtil.getUserGroup(PortalUtil.getCompanyId(req),groupIds);

userParams.put("usersGroups", String.valueOf(group.getGroupId()));
tempList = UserLocalServiceUtil.search(PortalUtil.getCompanyId(req), null, null, null,
null, true, userParams, true, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);

for (int j = 0; j < tempList.size(); j++) {
addresses.add(tempList.get(j));
}
}
}

if (roleIds != null) {
for (int i = 0; i < roleIds.length; i++) {

Role role = RoleLocalServiceUtil.getRole(roleIds);

userParams.put("usersRoles", role.getRoleId());

tempList = UserLocalServiceUtil.search(PortalUtil.getCompanyId(req), null, null, null,
null, true, userParams, true, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);

for (int j = 0; j < tempList.size(); j++) {
addresses.add(tempList.get(j));
}
}
}
if (userIds != null) {
for (int i = 0; i < userIds.length; i++) {
addresses.add(UserLocalServiceUtil.getUserById(userIds));
}
}

//remove dups

Set set = new HashSet();
set.addAll(addresses);

if(set.size() < addresses.size()) {
addresses.clear();
addresses.addAll(set);
}

InternetAddress[] bcc = new InternetAddress[addresses.size()];

for (int i = 0; i < addresses.size(); i++) {
User communityUser = (User)addresses.get(i);
bcc = new InternetAddress(communityUser.getEmailAddress(),
communityUser.getEmailAddress());
}

User user = PortalUtil.getUser(req);

InternetAddress from = new InternetAddress(user.getEmailAddress(),
user.getFullName());

String body = ParamUtil.getString(req, "body");
String subject = ParamUtil.getString(req, "subject");

MailEngine.send(from, null, null, bcc, subject, body);

}

public ActionForward render(
ActionMapping mapping, ActionForm form, PortletConfig config,
RenderRequest req, RenderResponse res)
throws Exception {

return mapping.findForward(
getForward(req, "portlet.newsletter.send_email"));
}
}

    •   Marcar como respuesta

More Related Content

Viewers also liked

Press Trust Of India May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
Press Trust Of India May 19, 2009 Fall In IT Stocks Snaps Stock Market RallyPress Trust Of India May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
Press Trust Of India May 19, 2009 Fall In IT Stocks Snaps Stock Market RallyJagannadham Thunuguntla
 
Sahara Samay Live May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
Sahara Samay Live May 19, 2009 Fall In IT Stocks Snaps Stock Market RallySahara Samay Live May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
Sahara Samay Live May 19, 2009 Fall In IT Stocks Snaps Stock Market RallyJagannadham Thunuguntla
 
Elogio A Giner De Los Rios
Elogio A Giner De Los RiosElogio A Giner De Los Rios
Elogio A Giner De Los RiosMariaCollado
 
Trading Charts May 17, 2009 Montek For FM, Chidambaram Fine As HM, Says India...
Trading Charts May 17, 2009 Montek For FM, Chidambaram Fine As HM, Says India...Trading Charts May 17, 2009 Montek For FM, Chidambaram Fine As HM, Says India...
Trading Charts May 17, 2009 Montek For FM, Chidambaram Fine As HM, Says India...Jagannadham Thunuguntla
 
Artwork Annotations
Artwork AnnotationsArtwork Annotations
Artwork Annotationssamgh1995
 
Fmp audience profiling
Fmp audience profilingFmp audience profiling
Fmp audience profilingsamgh1995
 
Creating a sample_library_brief_updated_27.03.12
Creating a sample_library_brief_updated_27.03.12Creating a sample_library_brief_updated_27.03.12
Creating a sample_library_brief_updated_27.03.12samgh1995
 
Production Log for Foyer
Production Log for FoyerProduction Log for Foyer
Production Log for Foyersamgh1995
 
MI PRESENTACION YARE
MI PRESENTACION YAREMI PRESENTACION YARE
MI PRESENTACION YAREyaremaya
 
Sims Pictures
Sims PicturesSims Pictures
Sims Picturessamgh1995
 
mi presentacion en slideshare(brianda pacheco)
mi presentacion en slideshare(brianda pacheco)mi presentacion en slideshare(brianda pacheco)
mi presentacion en slideshare(brianda pacheco)valeriio
 
Sam Gregory-Haigh XB2001 - Assignment 3 Design Document
Sam Gregory-Haigh XB2001 - Assignment 3 Design DocumentSam Gregory-Haigh XB2001 - Assignment 3 Design Document
Sam Gregory-Haigh XB2001 - Assignment 3 Design Documentsamgh1995
 
Prueba Power Point
Prueba Power PointPrueba Power Point
Prueba Power Pointbelpi
 

Viewers also liked (17)

גלאוקומה
גלאוקומהגלאוקומה
גלאוקומה
 
Celmedia
CelmediaCelmedia
Celmedia
 
Press Trust Of India May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
Press Trust Of India May 19, 2009 Fall In IT Stocks Snaps Stock Market RallyPress Trust Of India May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
Press Trust Of India May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
 
mi presentacion
mi presentacionmi presentacion
mi presentacion
 
Sahara Samay Live May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
Sahara Samay Live May 19, 2009 Fall In IT Stocks Snaps Stock Market RallySahara Samay Live May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
Sahara Samay Live May 19, 2009 Fall In IT Stocks Snaps Stock Market Rally
 
Elogio A Giner De Los Rios
Elogio A Giner De Los RiosElogio A Giner De Los Rios
Elogio A Giner De Los Rios
 
Trading Charts May 17, 2009 Montek For FM, Chidambaram Fine As HM, Says India...
Trading Charts May 17, 2009 Montek For FM, Chidambaram Fine As HM, Says India...Trading Charts May 17, 2009 Montek For FM, Chidambaram Fine As HM, Says India...
Trading Charts May 17, 2009 Montek For FM, Chidambaram Fine As HM, Says India...
 
Artwork Annotations
Artwork AnnotationsArtwork Annotations
Artwork Annotations
 
Fmp audience profiling
Fmp audience profilingFmp audience profiling
Fmp audience profiling
 
Creating a sample_library_brief_updated_27.03.12
Creating a sample_library_brief_updated_27.03.12Creating a sample_library_brief_updated_27.03.12
Creating a sample_library_brief_updated_27.03.12
 
Production Log for Foyer
Production Log for FoyerProduction Log for Foyer
Production Log for Foyer
 
Pepai Ccho 2
Pepai Ccho 2Pepai Ccho 2
Pepai Ccho 2
 
MI PRESENTACION YARE
MI PRESENTACION YAREMI PRESENTACION YARE
MI PRESENTACION YARE
 
Sims Pictures
Sims PicturesSims Pictures
Sims Pictures
 
mi presentacion en slideshare(brianda pacheco)
mi presentacion en slideshare(brianda pacheco)mi presentacion en slideshare(brianda pacheco)
mi presentacion en slideshare(brianda pacheco)
 
Sam Gregory-Haigh XB2001 - Assignment 3 Design Document
Sam Gregory-Haigh XB2001 - Assignment 3 Design DocumentSam Gregory-Haigh XB2001 - Assignment 3 Design Document
Sam Gregory-Haigh XB2001 - Assignment 3 Design Document
 
Prueba Power Point
Prueba Power PointPrueba Power Point
Prueba Power Point
 

newsletter_Liferay.rtf

  • 1. package com.liferay.portlet.newsletter.action; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Set; import com.liferay.portal.DuplicateGroupException; import com.liferay.portal.GroupFriendlyURLException; import com.liferay.portal.GroupNameException; import com.liferay.portal.NoSuchGroupException; import com.liferay.portal.RequiredGroupException; import com.liferay.portal.model.Group; import com.liferay.portal.model.Role; import com.liferay.portal.model.User; import com.liferay.portal.model.UserGroup; import com.liferay.portal.security.auth.PrincipalException; import com.liferay.portal.service.GroupLocalServiceUtil; import com.liferay.portal.service.GroupServiceUtil; import com.liferay.portal.service.RoleLocalServiceUtil; import com.liferay.portal.service.UserGroupLocalServiceUtil; import com.liferay.portal.service.UserLocalServiceUtil; import com.liferay.portal.service.persistence.RoleFinder; import com.liferay.portal.service.persistence.UserUtil; import com.liferay.portal.struts.PortletAction; import com.liferay.portal.util.Constants; import com.liferay.portal.util.PortalUtil; import com.liferay.portal.util.WebKeys; import com.liferay.portal.util.comparator.ContactLastNameComparator; import com.liferay.util.ParamUtil; import com.liferay.util.Validator; import com.liferay.util.dao.hibernate.QueryUtil; import com.liferay.util.mail.MailEngine; import com.liferay.util.servlet.SessionErrors; import javax.mail.internet.InternetAddress; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletConfig; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward;
  • 2. import org.apache.struts.action.ActionMapping; public class SendEmail extends PortletAction { public void processAction( ActionMapping mapping, ActionForm form, PortletConfig config, ActionRequest req, ActionResponse res) throws Exception { String[] userIds = req.getParameterValues("selected-users"); String[] userGroupIds = req.getParameterValues("selected-usergroups"); String[] groupIds = req.getParameterValues("selected-groups"); String[] roleIds = req.getParameterValues("selected-roles"); List addresses = new ArrayList(); List tempList = new ArrayList(); LinkedHashMap userParams = new LinkedHashMap(); // Get all users in the selected groups if (userGroupIds != null) { for (int i = 0; i < userGroupIds.length; i++) { UserGroup UG = UserGroupLocalServiceUtil.getUserGroup(userGroupIds); userParams.put("usersUserGroups", UG.getUserGroupId()); tempList = UserLocalServiceUtil.search(PortalUtil.getCompanyId(req), null, null, null, null, true, userParams, true, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); for (int j = 0; j < tempList.size(); j++) { addresses.add(tempList.get(j)); } } } userParams = new LinkedHashMap(); // now communities if (groupIds != null) { for (int i = 0; i < groupIds.length; i++) { System.out.println(groupIds); Group group = GroupLocalServiceUtil.getUserGroup(PortalUtil.getCompanyId(req),groupIds); userParams.put("usersGroups", String.valueOf(group.getGroupId()));
  • 3. tempList = UserLocalServiceUtil.search(PortalUtil.getCompanyId(req), null, null, null, null, true, userParams, true, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); for (int j = 0; j < tempList.size(); j++) { addresses.add(tempList.get(j)); } } } if (roleIds != null) { for (int i = 0; i < roleIds.length; i++) { Role role = RoleLocalServiceUtil.getRole(roleIds); userParams.put("usersRoles", role.getRoleId()); tempList = UserLocalServiceUtil.search(PortalUtil.getCompanyId(req), null, null, null, null, true, userParams, true, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null); for (int j = 0; j < tempList.size(); j++) { addresses.add(tempList.get(j)); } } } if (userIds != null) { for (int i = 0; i < userIds.length; i++) { addresses.add(UserLocalServiceUtil.getUserById(userIds)); } } //remove dups Set set = new HashSet(); set.addAll(addresses); if(set.size() < addresses.size()) { addresses.clear(); addresses.addAll(set); } InternetAddress[] bcc = new InternetAddress[addresses.size()]; for (int i = 0; i < addresses.size(); i++) { User communityUser = (User)addresses.get(i); bcc = new InternetAddress(communityUser.getEmailAddress(), communityUser.getEmailAddress());
  • 4. } User user = PortalUtil.getUser(req); InternetAddress from = new InternetAddress(user.getEmailAddress(), user.getFullName()); String body = ParamUtil.getString(req, "body"); String subject = ParamUtil.getString(req, "subject"); MailEngine.send(from, null, null, bcc, subject, body); } public ActionForward render( ActionMapping mapping, ActionForm form, PortletConfig config, RenderRequest req, RenderResponse res) throws Exception { return mapping.findForward( getForward(req, "portlet.newsletter.send_email")); } } • Marcar como respuesta