Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== diff -u -r60e44b19b8de02a00faa437fba8117928baa3d73 -rc2e7e503113e8f6943f4234a09a3ca1e86e5fd55 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 60e44b19b8de02a00faa437fba8117928baa3d73) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision c2e7e503113e8f6943f4234a09a3ca1e86e5fd55) @@ -58,7 +58,7 @@ * The object to be inserted */ void save(Object object); - + User saveUser(User user); /** @@ -133,29 +133,30 @@ * @return UserBasicDTO objectsin a Vector */ Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName, boolean getUser); - + /** * Return all organisations that were marked as favorite by the specified user - * + * * @param userId * @return */ List getFavoriteOrganisationsByUser(Integer userId); - + /** * Checks whether user marked this organisation as favorite. - * + * * @param organisationId * @param userId * @return */ boolean isOrganisationFavorite(Integer organisationId, Integer userId); - + /** * Toggles whether organisation is marked as favorite - * + * * @param organisation - * @param user user performing toggling + * @param user + * user performing toggling */ void toggleOrganisationFavorite(Integer orgId, Integer userId); @@ -307,6 +308,8 @@ */ void setRolesForUserOrganisation(User user, Integer organisationId, List rolesList); + void setRolesForUserOrganisation(Integer userId, Integer organisationId, List rolesList); + /** * Returns list of roles suitable for the given orgType. * Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== diff -u -r60e44b19b8de02a00faa437fba8117928baa3d73 -rc2e7e503113e8f6943f4234a09a3ca1e86e5fd55 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 60e44b19b8de02a00faa437fba8117928baa3d73) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision c2e7e503113e8f6943f4234a09a3ca1e86e5fd55) @@ -115,6 +115,7 @@ baseDAO.insertOrUpdate(object); } + @Override public User saveUser(User user) { if (user != null) { // create user @@ -459,11 +460,13 @@ } else { // update workspace/folder names WorkspaceFolder folder = organisation.getNormalFolder(); - if (folder != null) + if (folder != null) { folder.setName(organisation.getName()); + } folder = organisation.getRunSequencesFolder(); - if (folder != null) + if (folder != null) { folder.setName(getRunSequencesFolderName(organisation.getName())); + } } return organisation; @@ -592,6 +595,12 @@ } @Override + public void setRolesForUserOrganisation(Integer userId, Integer organisationId, List rolesList) { + User user = (User) findById(User.class, userId); + setRolesForUserOrganisation(user, organisationId, rolesList); + } + + @Override public void setRolesForUserOrganisation(User user, Integer organisationId, List rolesList) { // Don't pass in the org from the web layer. The import for roles @@ -653,6 +662,9 @@ uors = new HashSet(); } for (String roleId : rolesCopy) { + if (roleId == null) { + continue; + } Role role = (Role) findById(Role.class, Integer.parseInt(roleId)); UserOrganisationRole uor = new UserOrganisationRole(uo, role); save(uor);