Index: lams_admin/conf/xdoclet/struts-forms.xml =================================================================== RCS file: /usr/local/cvsroot/lams_admin/conf/xdoclet/struts-forms.xml,v diff -u -r1.4 -r1.5 --- lams_admin/conf/xdoclet/struts-forms.xml 16 Jun 2006 06:57:54 -0000 1.4 +++ lams_admin/conf/xdoclet/struts-forms.xml 22 Jun 2006 05:41:36 -0000 1.5 @@ -32,9 +32,5 @@ - - - - - + Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java,v diff -u -r1.8 -r1.9 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 19 Jun 2006 05:38:52 -0000 1.8 +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java 22 Jun 2006 05:41:36 -0000 1.9 @@ -24,6 +24,9 @@ /* $Id$ */ package org.lamsfoundation.lams.admin.web; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; import java.util.List; import javax.servlet.http.HttpServletRequest; @@ -37,9 +40,10 @@ import org.apache.struts.action.DynaActionForm; import org.lamsfoundation.lams.usermanagement.Country; import org.lamsfoundation.lams.usermanagement.Language; -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.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; @@ -74,20 +78,6 @@ private static List countries = service.findAll(Country.class); private static List languages = service.findAll(Language.class); - public ActionForward add(ActionMapping mapping, - ActionForm form, - HttpServletRequest request, - HttpServletResponse response) throws Exception { - // retain orgId to return to userlist - Integer orgId = WebUtil.readIntParam(request,"orgId"); - Organisation organisation = (Organisation)service.findById(Organisation.class,orgId); - Integer parentId = organisation.getParentOrganisation().getOrganisationId(); - - request.setAttribute("org",orgId); - request.setAttribute("parent",parentId); - return mapping.findForward("userlist"); - } - public ActionForward edit(ActionMapping mapping, ActionForm form, HttpServletRequest request, @@ -105,23 +95,36 @@ User user = (User)service.findById(User.class,userId); DynaActionForm userForm = (DynaActionForm)form; BeanUtils.copyProperties(userForm, user); - List roles = service.getRolesForUserByOrganisation(user, orgId); - UserOrgRolesDTO userRoles = new UserOrgRolesDTO(); - for(int i=0; i rolelist = new ArrayList(); + for(int i=0; i roles = service.getRolesForUserByOrganisation(user, orgId); - - Role currentRole = (Role)service.findByProperty(Role.class,"name","LEARNER").get(0); - if(userForm.get("learner").equals("on") && roles.indexOf(currentRole)<0) { - UserOrganisationRole userOrganisationRole = new UserOrganisationRole(userOrganisation, - currentRole); - service.save(userOrganisationRole); - } else if(userForm.get("learner").equals("off")){ - //service.deleteUserOrganisationRole(); + + String[] roles = (String[])userForm.get("roles"); + List rolesList = Arrays.asList(roles); + log.debug("rolesList.size: "+rolesList.size()); + Set uos = user.getUserOrganisations(); + Iterator iter = uos.iterator(); + while(iter.hasNext()){ + UserOrganisation uo = (UserOrganisation)iter.next(); + if(uo.getOrganisation().getOrganisationId().equals(orgId)){ + // simply clearing the uors and setting new ones specified by user doesn't seem to work + /*uo.getUserOrganisationRoles().clear(); + service.save(user); + log.debug("num roles: "+uo.getUserOrganisationRoles().size()); + for(int i=0; i : - checked /> - checked /> - checked /> - checked /> - checked /> + + + +