Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java,v diff -u -r1.11 -r1.12 --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java 21 Jan 2010 08:18:32 -0000 1.11 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java 6 Mar 2010 22:39:02 -0000 1.12 @@ -25,6 +25,7 @@ import javax.servlet.ServletContext; +import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.integration.service.IIntegrationService; import org.lamsfoundation.lams.lesson.service.ILessonService; import org.lamsfoundation.lams.monitoring.service.IMonitoringService; @@ -56,6 +57,7 @@ private static Configuration configurationService; private static ILessonService lessonService; private static IMonitoringService monitoringService; + private static IEventNotificationService eventNotificationService; public static final IUserManagementService getService(ServletContext servletContext) { if (manageService == null) { @@ -135,6 +137,13 @@ return monitoringService; } + public static final IEventNotificationService getEventNotificationService(ServletContext servletContext) { + if (eventNotificationService == null) { + eventNotificationService = (IEventNotificationService)getDomainService(servletContext, "eventNotificationService"); + } + return eventNotificationService; + } + private static Object getDomainService(ServletContext servletContext,String serviceName) { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); return wac.getBean(serviceName); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/EmailUserAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/Attic/EmailUserAction.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/EmailUserAction.java 6 Mar 2010 22:39:02 -0000 1.1 @@ -0,0 +1,137 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id: EmailUserAction.java,v 1.1 2010/03/06 22:39:02 andreyb Exp $ */ +package org.lamsfoundation.lams.admin.web.action; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.commons.beanutils.BeanUtils; +import org.apache.log4j.Logger; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.apache.struts.action.DynaActionForm; +import org.lamsfoundation.lams.admin.AdminConstants; +import org.lamsfoundation.lams.admin.service.AdminServiceProxy; +import org.lamsfoundation.lams.admin.web.dto.UserOrgRoleDTO; +import org.lamsfoundation.lams.admin.web.form.EmailForm; +import org.lamsfoundation.lams.events.DeliveryMethodMail; +import org.lamsfoundation.lams.events.IEventNotificationService; +import org.lamsfoundation.lams.themes.Theme; +import org.lamsfoundation.lams.themes.service.IThemeService; +import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; +import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.OrganisationState; +import org.lamsfoundation.lams.usermanagement.OrganisationType; +import org.lamsfoundation.lams.usermanagement.Role; +import org.lamsfoundation.lams.usermanagement.SupportedLocale; +import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.UserOrganisation; +import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.LanguageUtil; +import org.lamsfoundation.lams.util.MessageService; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; + +/** + * @author Andrey Balan + * + * @struts:action path="/emailUser" name="emailForm" scope="request" + * parameter="method" validate="false" + * + * @struts:action-forward name="emailuser" path=".emailuser" + * @struts:action-forward name="usersearch" path="/usersearch.do" + */ +public class EmailUserAction extends LamsDispatchAction { + + private static Logger log = Logger.getLogger(EmailUserAction.class); + private IUserManagementService service; + private MessageService messageService; + private IEventNotificationService eventNotificationService; + + private void initServices() { + if (service == null) { + service = AdminServiceProxy.getService(getServlet().getServletContext()); + } + if (messageService == null) { + messageService = AdminServiceProxy.getMessageService(getServlet().getServletContext()); + } + if (eventNotificationService == null) { + eventNotificationService = AdminServiceProxy.getEventNotificationService(getServlet().getServletContext()); + } + } + + public ActionForward composeMail(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { + initServices(); + + if (!(request.isUserInRole(Role.SYSADMIN) || service.isUserGlobalGroupAdmin())) { + request.setAttribute("errorName", "UserAction"); + request.setAttribute("errorMessage", messageService.getMessage("error.authorisation")); + return mapping.findForward("error"); + } + + Integer userId = WebUtil.readIntParam(request, "userId"); + User user = (User) service.findById(User.class, userId); + request.setAttribute("user", user); + + return mapping.findForward("emailuser"); + } + + public ActionForward send(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { + initServices(); + + if (!(request.isUserInRole(Role.SYSADMIN) || service.isUserGlobalGroupAdmin())) { + request.setAttribute("errorName", "UserAction"); + request.setAttribute("errorMessage", messageService.getMessage("error.authorisation")); + return mapping.findForward("error"); + } + + EmailForm emailForm = (EmailForm) form; + Integer userId = emailForm.getUserId(); + User user = (User) service.findById(User.class, userId); + + //String to = WebUtil.readStrParam(request, "to"); + String subject = emailForm.getSubject(); + String body = emailForm.getBody(); + + HttpSession ss1 = SessionManager.getSession(); + UserDTO administrator = (UserDTO) ss1.getAttribute(AttributeNames.USER); + + EmailUserAction.log.debug("Administrator " + administrator.getFirstName() + " " + administrator.getLastName() + + " sent email to user " + user.getFirstName() + " " + user.getLastName() + ": \n[subject] " + subject + "\n[message] " + body); + eventNotificationService.sendMessage(new Long(userId), DeliveryMethodMail.getInstance(), subject, body); + + return mapping.findForward("usersearch"); + } + +} Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/EmailForm.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/Attic/EmailForm.java,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/form/EmailForm.java 6 Mar 2010 22:39:02 -0000 1.1 @@ -0,0 +1,75 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id: EmailForm.java,v 1.1 2010/03/06 22:39:02 andreyb Exp $ */ +package org.lamsfoundation.lams.admin.web.form; + +import org.apache.struts.action.ActionForm; + +/** + * + * Form for email composing + * + * @author Andrey Balan + * + * @struts.form name="emailForm" + */ +public class EmailForm extends ActionForm { + + private static final long serialVersionUID = 7775887425863041037L; + + private Integer userId; + + private String to; + private String subject; + private String body; + + public Integer getUserId() { + return userId; + } + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getTo() { + return to; + } + public void setTo(String name) { + this.to = name; + } + + public String getSubject() { + return subject; + } + public void setSubject(String description) { + this.subject = description; + } + + public String getBody() { + return body; + } + public void setBody(String imageDirectory) { + this.body = imageDirectory; + } + +} + Index: lams_admin/web/emailuser.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_admin/web/Attic/emailuser.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_admin/web/emailuser.jsp 6 Mar 2010 22:39:02 -0000 1.1 @@ -0,0 +1,60 @@ +<%@ include file="/taglibs.jsp"%> + + + +

+

+ +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + +
+ + + ${user.firstName} ${user.lastName} <${user.email}> +
+ + + +
+ +
+ +

+ + + + ';" class="button space-left"> + + +

+ +
+ +
+ +
Index: lams_admin/web/usersearchlist.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_admin/web/usersearchlist.jsp,v diff -u -r1.20 -r1.21 --- lams_admin/web/usersearchlist.jsp 13 Nov 2009 03:13:57 -0000 1.20 +++ lams_admin/web/usersearchlist.jsp 6 Mar 2010 22:39:02 -0000 1.21 @@ -1,5 +1,8 @@ <%@ include file="/taglibs.jsp"%> + + + @@ -82,6 +85,12 @@ ">   "> + + + "> + + + Index: lams_admin/web/WEB-INF/struts/struts-config.xml =================================================================== RCS file: /usr/local/cvsroot/lams_admin/web/WEB-INF/struts/Attic/struts-config.xml,v diff -u -r1.29 -r1.30 --- lams_admin/web/WEB-INF/struts/struts-config.xml 18 Feb 2010 05:42:19 -0000 1.29 +++ lams_admin/web/WEB-INF/struts/struts-config.xml 6 Mar 2010 22:39:02 -0000 1.30 @@ -14,41 +14,45 @@ - + + @@ -169,89 +173,104 @@ + + + - - - - - - - - - - - - - - - - - - + + + + @@ -542,6 +500,26 @@ /> + + + + + + + + + + + + - - - + + + + + + + - - - + + Index: lams_admin/web/WEB-INF/tiles/tiles-defs.xml =================================================================== RCS file: /usr/local/cvsroot/lams_admin/web/WEB-INF/tiles/Attic/tiles-defs.xml,v diff -u -r1.35 -r1.36 --- lams_admin/web/WEB-INF/tiles/tiles-defs.xml 22 Jan 2010 02:59:10 -0000 1.35 +++ lams_admin/web/WEB-INF/tiles/tiles-defs.xml 6 Mar 2010 22:39:02 -0000 1.36 @@ -108,6 +108,11 @@ + + + + +