Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java =================================================================== diff -u -r8cfa07901cb6337b5483aa035ab100a1d166d37d -r4a3ee46c60cd1f04d6cdf0a98e6741ccdf1530f1 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java (.../UserSaveAction.java) (revision 8cfa07901cb6337b5483aa035ab100a1d166d37d) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserSaveAction.java (.../UserSaveAction.java) (revision 4a3ee46c60cd1f04d6cdf0a98e6741ccdf1530f1) @@ -147,6 +147,9 @@ Role currentRole = (Role)service.findById(Role.class,roleId); log.debug("setting role: "+currentRole); uors.add(new UserOrganisationRole(uo,currentRole)); + uo.setUserOrganisationRoles(uors); + user.setUserOrganisations(uos); + service.save(user); //log.debug("num roles: "+uo.getUserOrganisationRoles().size()); } } @@ -158,12 +161,11 @@ //log.debug("rolesList: "+rolesList); if(rolesList.indexOf(currentRoleId.toString())<0){ // remove roles not set by user log.debug("removing role: "+currentRoleId); - uors.remove(uor); + iter3.remove(); //log.debug("num roles: "+uors.size()); uo.setUserOrganisationRoles(uors); uos.add(uo); user.setUserOrganisations(uos); - break; } } break; // already found uo that matches this org