Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java =================================================================== diff -u -r4f6235f53dbd594d4ccfbad02bca53f3b598336c -r395688ee7ba729fee50566d7ef27348a3591404d --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java (.../UserAction.java) (revision 4f6235f53dbd594d4ccfbad02bca53f3b598336c) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserAction.java (.../UserAction.java) (revision 395688ee7ba729fee50566d7ef27348a3591404d) @@ -106,20 +106,23 @@ // test requestor's permission Organisation org = null; - Boolean requestorHasRole = service.isUserGlobalGroupAdmin(); + Boolean canEdit = service.isUserGlobalGroupAdmin(); if (orgId!=null) { org = (Organisation)service.findById(Organisation.class,orgId); - if (!requestorHasRole) { + if (!canEdit) { OrganisationType orgType = org.getOrganisationType(); Integer orgIdOfCourse = (orgType.getOrganisationTypeId().equals(OrganisationType.CLASS_TYPE)) ? org.getParentOrganisation().getOrganisationId() : orgId; User requestor = (User)service.getUserByLogin(request.getRemoteUser()); - requestorHasRole = service.isUserInRole(requestor.getUserId(), orgIdOfCourse, Role.GROUP_ADMIN) - || service.isUserInRole(requestor.getUserId(), orgIdOfCourse, Role.GROUP_MANAGER); + if (service.isUserInRole(requestor.getUserId(), orgIdOfCourse, Role.GROUP_ADMIN) + || service.isUserInRole(requestor.getUserId(), orgIdOfCourse, Role.GROUP_MANAGER)) { + Organisation course = (Organisation)service.findById(Organisation.class, orgIdOfCourse); + canEdit = course.getCourseAdminCanAddNewUsers(); + } } } - if (!(requestorHasRole || request.isUserInRole(Role.SYSADMIN))) { + if (!(canEdit || request.isUserInRole(Role.SYSADMIN))) { request.setAttribute("errorName", "UserAction"); request.setAttribute("errorMessage", messageService.getMessage("error.authorisation")); return mapping.findForward("error"); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java =================================================================== diff -u -r7ab9e2377fd1ff4c3c5554bd1f6dffe3384f6f9a -r395688ee7ba729fee50566d7ef27348a3591404d --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java (.../UserManageAction.java) (revision 7ab9e2377fd1ff4c3c5554bd1f6dffe3384f6f9a) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/UserManageAction.java (.../UserManageAction.java) (revision 395688ee7ba729fee50566d7ef27348a3591404d) @@ -115,6 +115,7 @@ || (service.isUserGlobalGroupAdmin() && !orgId.equals(rootOrgId))){ userManageForm.setCourseAdminCanAddNewUsers(true); userManageForm.setCourseAdminCanBrowseAllUsers(true); + request.setAttribute("canDeleteUser", true); }else if((service.isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.GROUP_ADMIN) || service.isUserInRole(userId,orgOfCourseAdmin.getOrganisationId(),Role.GROUP_MANAGER)) && !orgId.equals(rootOrgId)){ Index: lams_admin/web/userlist.jsp =================================================================== diff -u -r301b444dedf83e9caa28a69f3d70b84942181052 -r395688ee7ba729fee50566d7ef27348a3591404d --- lams_admin/web/userlist.jsp (.../userlist.jsp) (revision 301b444dedf83e9caa28a69f3d70b84942181052) +++ lams_admin/web/userlist.jsp (.../userlist.jsp) (revision 395688ee7ba729fee50566d7ef27348a3591404d) @@ -131,7 +131,13 @@   - + + +   + + + +