Index: lams_central/src/java/org/lamsfoundation/lams/webservice/SPEnrolmentServlet.java =================================================================== diff -u -r7458588a3946b6e57836e2da89588c579aa4434c -rd3e92c2e32eabb05116f035967e2d13ec96fed46 --- lams_central/src/java/org/lamsfoundation/lams/webservice/SPEnrolmentServlet.java (.../SPEnrolmentServlet.java) (revision 7458588a3946b6e57836e2da89588c579aa4434c) +++ lams_central/src/java/org/lamsfoundation/lams/webservice/SPEnrolmentServlet.java (.../SPEnrolmentServlet.java) (revision d3e92c2e32eabb05116f035967e2d13ec96fed46) @@ -464,14 +464,21 @@ logger.info("Processing " + role + " role finished"); } + try { + HibernateSessionManager.closeSession(); + HibernateSessionManager.openSession(); + } catch (Exception e) { + logger.warn("Error while recreating Hibernate session", e); + } + logger.info("Disabling users"); // users who are part of courses but are not in the file anymore are eligible for disabling allExistingUsersFromParsedCourses.removeAll(allParsedUsers); for (User user : allExistingUsersFromParsedCourses) { boolean hasAnyRoles = userManagementService.hasUserAnyRoles(user.getUserId()); if (!hasAnyRoles) { // he is only a learner or this is staff mode, so disable - userManagementService.disableUser(user.getUserId()); + userManagementService.disableUser(user.getUserId(), true); String message = "User \"" + user.getLogin().toLowerCase() + "\" disabled"; logger.info(message); Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== diff -u -rf6a638aaf02124adf0a3a519440b3b31496937ae -rd3e92c2e32eabb05116f035967e2d13ec96fed46 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision f6a638aaf02124adf0a3a519440b3b31496937ae) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision d3e92c2e32eabb05116f035967e2d13ec96fed46) @@ -330,12 +330,16 @@ /** * Sets user's disabled flag to true, and removes their organisation memberships. - * - * @param userId */ void disableUser(Integer userId); /** + * Sets user's disabled flag to true, and removes their organisation memberships. + * Skip log for batch processing. + */ + void disableUser(Integer userId, boolean skipLog); + + /** * Set the roles for the specified user and organisation using the roleIds in rolesList. If userOrganisation exists, * will also remove roles that are not in rolesList. * Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== diff -u -r2de8f805211b6433aff4efd6fa9275a1b9933033 -rd3e92c2e32eabb05116f035967e2d13ec96fed46 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 2de8f805211b6433aff4efd6fa9275a1b9933033) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision d3e92c2e32eabb05116f035967e2d13ec96fed46) @@ -691,9 +691,17 @@ @Override public void disableUser(Integer userId) { + disableUser(userId, false); + } + + @Override + public void disableUser(Integer userId, boolean skipLog) { User user = (User) findById(User.class, userId); + if (user.getDisabledFlag()) { + return; + } user.setDisabledFlag(true); - log.debug("disabling user " + user.getLogin()); + log.info("disabling user " + user.getLogin()); saveUser(user); Set uos = user.getUserOrganisations(); @@ -705,7 +713,9 @@ iter.remove(); } - AuditLogFilter.log(AuditLogFilter.USER_DISABLE_ACTION, "user login: " + user.getLogin()); + if (!skipLog) { + AuditLogFilter.log(AuditLogFilter.USER_DISABLE_ACTION, "user login: " + user.getLogin()); + } } @Override @@ -1225,8 +1235,8 @@ modifiedPortraitInputStream.close(); is.close(); if (log.isDebugEnabled()) { - log.debug( - "Saved large portrait with uuid: " + node.getNodeId() + " and version: " + node.getVersion()); + log.debug("Saved large portrait with uuid: " + node.getNodeId() + " and version: " + + node.getVersion()); } //resize to the medium size @@ -1251,8 +1261,8 @@ modifiedPortraitInputStream.close(); is.close(); if (log.isDebugEnabled()) { - log.debug( - "Saved small portrait with uuid: " + node.getNodeId() + " and version: " + node.getVersion()); + log.debug("Saved small portrait with uuid: " + node.getNodeId() + " and version: " + + node.getVersion()); } // delete old portrait file (we only want to keep the user's current portrait) if (user.getPortraitUuid() != null) {