Index: lams_admin/conf/xdoclet/struts-forms.xml =================================================================== diff -u -r7f2277c2698e0106e74d1edeabd49bc926e064b7 -r595b61abd50d853fa3b934c86e95120b0be584bb --- lams_admin/conf/xdoclet/struts-forms.xml (.../struts-forms.xml) (revision 7f2277c2698e0106e74d1edeabd49bc926e064b7) +++ lams_admin/conf/xdoclet/struts-forms.xml (.../struts-forms.xml) (revision 595b61abd50d853fa3b934c86e95120b0be584bb) @@ -42,3 +42,6 @@ + + + \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserBean.java =================================================================== diff -u --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserBean.java (revision 0) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserBean.java (revision 595b61abd50d853fa3b934c86e95120b0be584bb) @@ -0,0 +1,72 @@ +/**************************************************************** + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.admin.web; + +import org.apache.struts.action.ActionForm; + +/** + * @author jliew + * + * Bean used as member of UserOrgRoleForm, representing a user's roles. + * + */ +public class UserBean extends ActionForm { + + private Integer userId; + private String login; + private String[] roleIds; + + public Integer getUserId() { + return this.userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getLogin() { + return this.login; + } + + public void setLogin(String login) { + this.login = login; + } + + public String[] getRoleIds(){ + return this.roleIds; + } + + public void setRoleIds(String[] roleIds){ + this.roleIds = roleIds; + } + + public Object getRoleId(int key) { + return roleIds[key]; + } + + public void setRoleId(int key, String roleId) { + roleIds[key] = roleId; + } +} Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgRoleAction.java =================================================================== diff -u --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgRoleAction.java (revision 0) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgRoleAction.java (revision 595b61abd50d853fa3b934c86e95120b0be584bb) @@ -0,0 +1,110 @@ +/**************************************************************** + * 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.admin.web; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.beanutils.BeanUtils; +import org.apache.log4j.Logger; +import org.apache.struts.action.Action; +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.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.Role; +import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.UserOrganisation; +import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.context.support.WebApplicationContextUtils; + +/** + * @author jliew + * + * Called when a user has added users to an organisation. + * + */ + +/** + * struts doclets + * + * @struts:action path="/userorgrole" + * name="UserOrgRoleForm" + * scope="request" + * validate="false" + * + * @struts:action-forward name="userorgrole" + * path=".userorgrole" + */ +public class UserOrgRoleAction extends Action { + + private static Logger log = Logger.getLogger(UserOrgRoleAction.class); + private static IUserManagementService service; + + public ActionForward execute(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) throws Exception { + UserOrgRoleForm userOrgRoleForm = (UserOrgRoleForm)form; + + // set list of roles appropriate for the organisation type + List roles = (List)request.getAttribute("roles"); + log.debug("num roles: "+roles.size()); + Collections.sort(roles); + request.setAttribute("roles",roles); + + // populate form with users + ArrayList userOrgs = (ArrayList)request.getAttribute("newUserOrganisations"); + for(int i=0; i userIdList = Arrays.asList(userIds); log.debug("userIdList: "+userIdList); + List newUserOrganisations = new ArrayList(); // remove UserOrganisations that aren't in form data Iterator iter = uos.iterator(); @@ -119,16 +123,25 @@ getService().save(uo); uos.add(uo); log.debug("added: "+userId); - Role role = (Role)getService().findByProperty(Role.class,"name",Role.LEARNER).get(0); + newUserOrganisations.add(uo); + /*Role role = (Role)getService().findByProperty(Role.class,"name",Role.LEARNER).get(0); UserOrganisationRole uor = new UserOrganisationRole(uo,role); - getService().save(uor); + getService().save(uor);*/ } } organisation.setUserOrganisations(uos); getService().save(organisation); - return mapping.findForward("userlist"); + if(newUserOrganisations.isEmpty()){ + return mapping.findForward("userlist"); + }else{ // send user to screen where they can assign roles for the newly added users + List roles = getService().getRolesForOrgType(organisation.getOrganisationType(),false); + request.setAttribute("roles",roles); + request.setAttribute("newUserOrganisations",newUserOrganisations); + request.setAttribute("orgId",orgId); + return mapping.findForward("userorgrole"); + } } private IUserManagementService getService(){ Index: lams_admin/web/WEB-INF/tiles/tiles-defs.xml =================================================================== diff -u -r717b6ec449b63d74e094c7b6466723ff25bcefc7 -r595b61abd50d853fa3b934c86e95120b0be584bb --- lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 717b6ec449b63d74e094c7b6466723ff25bcefc7) +++ lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 595b61abd50d853fa3b934c86e95120b0be584bb) @@ -2,6 +2,11 @@ + + + + + Index: lams_admin/web/userorgrole.jsp =================================================================== diff -u --- lams_admin/web/userorgrole.jsp (revision 0) +++ lams_admin/web/userorgrole.jsp (revision 595b61abd50d853fa3b934c86e95120b0be584bb) @@ -0,0 +1,39 @@ +<%@ page contentType="text/html; charset=utf-8" language="java" %> + +<%@ taglib uri="tags-html-el" prefix="html-el" %> +<%@ taglib uri="tags-core" prefix="c" %> +<%@ taglib uri="tags-bean" prefix="bean" %> +<%@ taglib uri="tags-logic" prefix="logic" %> +<%@ taglib uri="tags-fmt" prefix="fmt" %> + +
+ + + + + + + + + + + + + + + + + + +
+
+
+ +   + +
+ + + +
+