Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgSaveAction.java =================================================================== diff -u -r40cd00471f7910f9cc2459a03082d35b33fd8308 -r28fa966281305666d0d939aa53c82923eb30f50c --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgSaveAction.java (.../UserOrgSaveAction.java) (revision 40cd00471f7910f9cc2459a03082d35b33fd8308) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserOrgSaveAction.java (.../UserOrgSaveAction.java) (revision 28fa966281305666d0d939aa53c82923eb30f50c) @@ -90,27 +90,7 @@ Organisation organisation = (Organisation)service.findById(Organisation.class, orgId); Set uos = organisation.getUserOrganisations(); - /* clear and repopulate set of userorganisations; - * adding new rows work, but old ones are not removed: - * ObjectDeletedException, object would be re-saved by cascade - uos.clear(); - organisation.setUserOrganisations(uos); - service.save(organisation); - String[] userIds = (String[])userOrgForm.get("userIds"); - List userIdList = Arrays.asList(userIds); - for(int i=0; i userIdList = Arrays.asList(userIds); log.debug("userIdList: "+userIdList); @@ -139,6 +119,7 @@ if(!alreadyInOrg){ User user = (User)service.findById(User.class,userId); UserOrganisation uo = new UserOrganisation(user,organisation); + service.save(uo); // weird spring?/hibernate? bug where only first row is added uos.add(uo); log.debug("added: "+userId); } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java =================================================================== diff -u -r4a3ee46c60cd1f04d6cdf0a98e6741ccdf1530f1 -r28fa966281305666d0d939aa53c82923eb30f50c --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java (.../UserSaveAction.java) (revision 4a3ee46c60cd1f04d6cdf0a98e6741ccdf1530f1) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java (.../UserSaveAction.java) (revision 28fa966281305666d0d939aa53c82923eb30f50c) @@ -119,18 +119,6 @@ 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