Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserRolesSaveController.java =================================================================== diff -u -rec30ad2cd8a7b048f296533bcb70fdafd80a3be6 -r2db2585176c2ec6e2d3c8efd625fb72abc98c619 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserRolesSaveController.java (.../UserRolesSaveController.java) (revision ec30ad2cd8a7b048f296533bcb70fdafd80a3be6) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserRolesSaveController.java (.../UserRolesSaveController.java) (revision 2db2585176c2ec6e2d3c8efd625fb72abc98c619) @@ -40,7 +40,8 @@ import org.lamsfoundation.lams.util.MessageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.validation.Errors; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -81,25 +82,27 @@ Collections.sort(rolelist); } - Errors errors = null; Integer orgId = userRolesForm.getOrgId(); Integer userId = userRolesForm.getUserId(); String[] roles = userRolesForm.getRoles(); request.setAttribute("org", orgId); - + log.debug("userId: " + userId + ", orgId: " + orgId + " will have " + roles.length + " roles"); Organisation org = (Organisation) service.findById(Organisation.class, orgId); User user = (User) service.findById(User.class, userId); + MultiValueMap errorMap = new LinkedMultiValueMap<>(); + // user must have at least 1 role if (roles.length < 1) { - errors.reject("roles", messageService.getMessage("error.roles.empty")); + errorMap.add("roles", messageService.getMessage("error.roles.empty")); + request.setAttribute("errorMap", errorMap); request.setAttribute("rolelist", service.filterRoles(rolelist, request.isUserInRole(Role.SYSADMIN), org.getOrganisationType())); request.setAttribute("login", user.getLogin()); request.setAttribute("fullName", user.getFullName()); - return "redirect:/userroles.do"; + return "forward:/userroles.do"; } service.setRolesForUserOrganisation(user, orgId, Arrays.asList(roles)); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSaveController.java =================================================================== diff -u -rc9e22b65129fe7561d7e66f5d6338557b0f3236a -r2db2585176c2ec6e2d3c8efd625fb72abc98c619 --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSaveController.java (.../UserSaveController.java) (revision c9e22b65129fe7561d7e66f5d6338557b0f3236a) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/controller/UserSaveController.java (.../UserSaveController.java) (revision 2db2585176c2ec6e2d3c8efd625fb72abc98c619) @@ -240,7 +240,7 @@ } else { request.setAttribute("orgId", orgId); request.setAttribute("userId", user.getUserId()); - return "redirect:/userroles.do"; + return "forward:/userroles.do"; } } else { request.setAttribute("orgId", orgId); Index: lams_admin/web/userrole.jsp =================================================================== diff -u -r912a82fab80bb985823a3d4b6168a9146ed97a7a -r2db2585176c2ec6e2d3c8efd625fb72abc98c619 --- lams_admin/web/userrole.jsp (.../userrole.jsp) (revision 912a82fab80bb985823a3d4b6168a9146ed97a7a) +++ lams_admin/web/userrole.jsp (.../userrole.jsp) (revision 2db2585176c2ec6e2d3c8efd625fb72abc98c619) @@ -18,7 +18,7 @@ ${title}: - + @@ -73,8 +73,8 @@
:
- - + + role.