Index: lams_admin/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r5f82321c5864250c612773630ff209a45e71a3f1 -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 5f82321c5864250c612773630ff209a45e71a3f1) +++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -534,4 +534,34 @@ label.select.type=Select type... label.date=Date label.between.dates=Between dates +label.lesson.with.name=Lesson: {0} + +label.type.teacher.learning.design.create=Learning Design Created +label.type.teacher.lesson.create=Lesson Created +label.type.teacher.lesson.start=Lesson Started +label.type.teacher.lesson.change.state=Lesson State Changed +label.type.learner.activity.start=Activity Started +label.type.learner.activity.finish=Activity Finished +label.type.learner.lesson.complete=Lesson Complete +label.type.learner.lesson.mark.submit=Mark Submitted +label.type.activity.edit=Activity Edited +label.type.force.complete=Learner Force Completed +label.type.user.org.admin=Organisation or User Changed +label.type.login.as=Sysadmin Logged In As +label.type.password.change=Password Change +label.type.role.failure=Action Attempted With Wrong Roles +label.type.account.locked=Account Locked +label.type.notification=Notification +label.type.mark.updated=Mark Updated +label.type.mark.released=Mark Released +label.type.learner.content.updated=Learner's Entry Modified +label.type.learner.content.show.hide=Learner's Entry Shown/Hidden +label.type.unknown=Unknown +label.area.lesson=Lesson +label.area.security=Security +label.area.notification=Notification +label.area.marks=Marks +label.area.learner.content=Learner Entry +label.area.unknown=Unknown + #======= End labels: Exported 511 labels for en AU ===== Index: lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml =================================================================== diff -u -rf3fbbb8ec1732de7e5ce51567287b42b55ab33e1 -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml (.../adminApplicationContext.xml) (revision f3fbbb8ec1732de7e5ce51567287b42b55ab33e1) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/adminApplicationContext.xml (.../adminApplicationContext.xml) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -19,8 +19,8 @@ - - + + \ No newline at end of file Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java =================================================================== diff -u -rf4e34e708b87e42dea1b6d667135f09840d79aa3 -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java (.../AdminServiceProxy.java) (revision f4e34e708b87e42dea1b6d667135f09840d79aa3) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java (.../AdminServiceProxy.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -28,6 +28,7 @@ import org.lamsfoundation.lams.events.IEventNotificationService; import org.lamsfoundation.lams.integration.service.IIntegrationService; import org.lamsfoundation.lams.lesson.service.ILessonService; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.security.ISecurityService; import org.lamsfoundation.lams.statistics.service.IStatisticsService; @@ -37,7 +38,6 @@ import org.lamsfoundation.lams.usermanagement.service.LdapService; import org.lamsfoundation.lams.util.Configuration; import org.lamsfoundation.lams.util.MessageService; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -51,7 +51,7 @@ private static IUserManagementService manageService; private static MessageService messageService; private static IIntegrationService integrationService; - private static IAuditService auditService; + private static ILogEventService logEventService; private static IImportService importService; private static LdapService ldapService; private static IStatisticsService statisticsService; @@ -88,12 +88,12 @@ return AdminServiceProxy.integrationService; } - public static final IAuditService getAuditService(ServletContext servletContext) { - if (AdminServiceProxy.auditService == null) { - AdminServiceProxy.auditService = (IAuditService) AdminServiceProxy.getDomainService(servletContext, - "auditService"); + public static final ILogEventService getLogEventService(ServletContext servletContext) { + if (AdminServiceProxy.logEventService == null) { + AdminServiceProxy.logEventService = (ILogEventService) AdminServiceProxy.getDomainService(servletContext, + "logEventService"); } - return AdminServiceProxy.auditService; + return AdminServiceProxy.logEventService; } public static final IImportService getImportService(ServletContext servletContext) { Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/IImportService.java =================================================================== diff -u -r51fb2a37254f24bb2a805d4ffd54482c779f43fa -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/IImportService.java (.../IImportService.java) (revision 51fb2a37254f24bb2a805d4ffd54482c779f43fa) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/IImportService.java (.../IImportService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -80,7 +80,7 @@ * @return * @throws IOException */ - public List parseGroupSpreadsheet(FormFile fileItem) throws IOException; + public List parseGroupSpreadsheet(FormFile fileItem, String sessionId) throws IOException; /** * Returns number of rows found in spreadsheet. Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java =================================================================== diff -u -r10a07b8ffe4a2ea92d2aed9a6401795213448b7e -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision 10a07b8ffe4a2ea92d2aed9a6401795213448b7e) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/ImportService.java (.../ImportService.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -38,7 +38,8 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.apache.poi.ss.usermodel.Cell; import org.apache.struts.upload.FormFile; -import org.lamsfoundation.lams.admin.AdminConstants; +import org.lamsfoundation.lams.logevent.LogEvent; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.themes.Theme; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; @@ -53,7 +54,6 @@ import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.ValidationUtil; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -70,7 +70,7 @@ private static Logger log = Logger.getLogger(ImportService.class); public IUserManagementService service; public MessageService messageService; - public IAuditService auditService; + public ILogEventService logEventService; public IUserManagementService getService() { return service; @@ -88,12 +88,12 @@ this.messageService = messageService; } - public IAuditService getAuditService() { - return auditService; + public ILogEventService getLogEventService() { + return logEventService; } - public void setAuditService(IAuditService auditService) { - this.auditService = auditService; + public void setLogEventService(ILogEventService logEventService) { + this.logEventService = logEventService; } // spreadsheet column indexes for user spreadsheet @@ -175,12 +175,13 @@ // each item in the list lists the id, name, and parent's id of that org; otherwise // the items in the list are error messages. @Override - public List parseGroupSpreadsheet(FormFile fileItem) throws IOException { + public List parseGroupSpreadsheet(FormFile fileItem, String sessionId) throws IOException { results = new ArrayList(); parentOrg = service.getRootOrganisation(); HSSFSheet sheet = getSheet(fileItem); int startRow = sheet.getFirstRowNum(); int endRow = sheet.getLastRowNum(); + UserDTO userDTO = (UserDTO) SessionManager.getSession(sessionId).getAttribute(AttributeNames.USER); ImportService.log.debug("Parsing spreadsheet rows " + startRow + " through " + endRow); @@ -213,7 +214,7 @@ rowResult.add(org.getName()); rowResult.add(org.getParentOrganisation().getOrganisationId().toString()); rowResult.add(org.getOrganisationType().getOrganisationTypeId().toString()); - writeOrgAuditLog(org); + writeOrgAuditLog(org, userDTO); // if we just added a group, then the rows under it become it's subgroups if (parentOrg.getOrganisationType().getOrganisationTypeId().equals(OrganisationType.ROOT_TYPE)) { parentOrg = org; @@ -222,7 +223,7 @@ } } ImportService.log.debug("Found " + results.size() + " orgs in spreadsheet."); - writeSuccessAuditLog(successful, null, "audit.successful.organisation.import"); + writeSuccessAuditLog(successful, userDTO, "audit.successful.organisation.import"); return results; } @@ -274,7 +275,8 @@ org.setOrganisationType((OrganisationType) service.findById(OrganisationType.class, parentOrg.getOrganisationType().getOrganisationTypeId().equals(OrganisationType.ROOT_TYPE) - ? OrganisationType.COURSE_TYPE : OrganisationType.CLASS_TYPE)); + ? OrganisationType.COURSE_TYPE + : OrganisationType.CLASS_TYPE)); org.setParentOrganisation(parentOrg); org.setCourseAdminCanAddNewUsers(parseBooleanCell(row.getCell(ImportService.ADMIN_ADD_NEW_USERS))); @@ -811,15 +813,18 @@ args[0] = user.getLogin() + "(" + user.getUserId() + ")"; args[1] = user.getFullName(); String message = messageService.getMessage("audit.user.create", args); - auditService.log(userDTO, AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, userDTO != null ? userDTO.getUserID() : null, + user.getUserId(), null, null, message); + } - private void writeOrgAuditLog(Organisation org) { + private void writeOrgAuditLog(Organisation org, UserDTO userDTO) { String[] args = new String[2]; args[0] = org.getName() + "(" + org.getOrganisationId() + ")"; args[1] = org.getOrganisationType().getName(); String message = messageService.getMessage("audit.organisation.create", args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, userDTO != null ? userDTO.getUserID() : null, null, null, + null, message); } private void writeErrorsAuditLog(int row, List list, UserDTO userDTO) { @@ -831,16 +836,14 @@ private void writeErrorAuditLog(int row, String error, UserDTO userDTO) { String[] args = { Integer.toString(row), error }; String message = messageService.getMessage("audit.spreadsheet.error", args); - auditService.log(userDTO, AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, userDTO != null ? userDTO.getUserID() : null, null, null, + null, message); } private void writeSuccessAuditLog(int successful, UserDTO userDTO, String key) { String[] args = { Integer.toString(successful) }; String message = messageService.getMessage(key, args); - if (userDTO == null) { - auditService.log(AdminConstants.MODULE_NAME, message); - } else { - auditService.log(userDTO, AdminConstants.MODULE_NAME, message); - } + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, userDTO != null ? userDTO.getUserID() : null, null, null, + null, message); } } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportGroupsAction.java =================================================================== diff -u -r85ef8aca5722a36582117db1e8b988e2c16b6369 -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportGroupsAction.java (.../ImportGroupsAction.java) (revision 85ef8aca5722a36582117db1e8b988e2c16b6369) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/ImportGroupsAction.java (.../ImportGroupsAction.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -36,6 +36,7 @@ import org.lamsfoundation.lams.admin.service.AdminServiceProxy; import org.lamsfoundation.lams.admin.service.IImportService; import org.lamsfoundation.lams.admin.web.form.ImportExcelForm; +import org.lamsfoundation.lams.web.session.SessionManager; /** * @author jliew @@ -69,7 +70,8 @@ return mapping.findForward("importGroups"); } - List results = importService.parseGroupSpreadsheet(file); + String sessionId = SessionManager.getSession().getId(); + List results = importService.parseGroupSpreadsheet(file, sessionId); request.setAttribute("results", results); return mapping.findForward("importGroups"); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/LogEventAction.java =================================================================== diff -u -r5f82321c5864250c612773630ff209a45e71a3f1 -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/LogEventAction.java (.../LogEventAction.java) (revision 5f82321c5864250c612773630ff209a45e71a3f1) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/LogEventAction.java (.../LogEventAction.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -47,6 +47,7 @@ import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; import org.lamsfoundation.lams.web.session.SessionManager; @@ -60,6 +61,7 @@ public class LogEventAction extends LamsDispatchAction { private static ILogEventService logEventService; + private MessageService messageService; private static SimpleDateFormat START_DATE_FORMAT = new SimpleDateFormat("YYYY-MM-DD"); @Override @@ -82,20 +84,24 @@ logEventService = getLogEventService(); + if (messageService == null) { + messageService = AdminServiceProxy.getMessageService(getServlet().getServletContext()); + } + // get the log type data and return display for user selection. Also get the start and stop dates from the log. // TODO check conversion the dates to the user's timezone List types = logEventService.getEventTypes(); List convertedTypes = new ArrayList(types.size()); - for ( LogEventType type : types ) { - // TODO get message from the I18N files - convertedTypes.add(new LogEventTypeDTO(type, type.getDescription().toLowerCase(), type.getArea().toLowerCase())); + for (LogEventType type : types) { + convertedTypes.add(new LogEventTypeDTO(type, messageService.getMessage(type.getDescriptionI18NKey()), + messageService.getMessage(type.getAreaI18NKey()))); } request.setAttribute("eventLogTypes", convertedTypes); // jsp page expects date of the first audit log entry as YYYY-DD-MM. Date oldestDate = logEventService.getOldestEventDate(); // oldestDate = DateUtil.convertToTimeZoneFromDefault(userTimeZone, oldestDate); - request.setAttribute("startDate", START_DATE_FORMAT.format(oldestDate)); + request.setAttribute("startDate", START_DATE_FORMAT.format(oldestDate != null ? oldestDate : new Date()) ); return mapping.findForward("success"); } @@ -156,26 +162,31 @@ String area = WebUtil.readStrParam(request, "area", true); Integer typeId = WebUtil.readIntParam(request, "typeId", true); - List events = logEventService.getEventsForTablesorter(page, size, sorting, null, startDate, endDate, area, typeId); + List events = logEventService.getEventsForTablesorter(page, size, sorting, null, startDate, endDate, area, typeId); JSONArray rows = new JSONArray(); JSONObject responsedata = new JSONObject(); responsedata.put("total_rows", logEventService.countEventsWithRestrictions(null, startDate, endDate, area, typeId)); - for (LogEvent event: events) { + for (Object[] eventDetails : events) { + if (eventDetails.length > 0) { + LogEvent event = (LogEvent) eventDetails[0]; + JSONObject responseRow = new JSONObject(); - JSONObject responseRow = new JSONObject(); - - responseRow.put("dateOccurred", event.getOccurredDateTime()); - responseRow.put("typeId", event.getLogEventTypeId()); - responseRow.put("description", event.getDescription()); - User user = event.getUser(); - if ( user != null ) { - responseRow.put("userPortraitId", user.getPortraitUuid()); - responseRow.put("userId", user.getUserId()); - responseRow.put("userName", user.getLogin()); + responseRow.put("dateOccurred", event.getOccurredDateTime()); + responseRow.put("typeId", event.getLogEventTypeId()); + responseRow.put("description", event.getDescription()); + User user = event.getUser(); + if (user != null) { + responseRow.put("userPortraitId", user.getPortraitUuid()); + responseRow.put("userId", user.getUserId()); + responseRow.put("userName", user.getLogin()); + } + if ( eventDetails.length > 1 && eventDetails[1] != null ) { + responseRow.put("lesson", eventDetails[1] ); + } + rows.put(responseRow); } - rows.put(responseRow); } responsedata.put("rows", rows); response.setContentType("application/json;charset=utf-8"); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/OrgSaveAction.java =================================================================== diff -u -r85ef8aca5722a36582117db1e8b988e2c16b6369 -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/OrgSaveAction.java (.../OrgSaveAction.java) (revision 85ef8aca5722a36582117db1e8b988e2c16b6369) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/OrgSaveAction.java (.../OrgSaveAction.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -38,8 +38,9 @@ import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.action.DynaActionForm; -import org.lamsfoundation.lams.admin.AdminConstants; import org.lamsfoundation.lams.admin.service.AdminServiceProxy; +import org.lamsfoundation.lams.logevent.LogEvent; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationState; import org.lamsfoundation.lams.usermanagement.OrganisationType; @@ -48,7 +49,6 @@ import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.ValidationUtil; -import org.lamsfoundation.lams.util.audit.IAuditService; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.springframework.web.context.WebApplicationContext; @@ -139,7 +139,7 @@ .getOrganisationStateId().equals(OrganisationState.ARCHIVED)) { org.setArchivedDate(new Date()); } - writeAuditLog(org, orgForm, state, locale); + writeAuditLog(user, org, orgForm, state, locale); BeanUtils.copyProperties(org, orgForm); } else { request.setAttribute("errorName", "UserAction"); @@ -153,7 +153,7 @@ (Organisation) service.findById(Organisation.class, (Integer) orgForm.get("parentId"))); org.setOrganisationType( (OrganisationType) service.findById(OrganisationType.class, (Integer) orgForm.get("typeId"))); - writeAuditLog(org, orgForm, org.getOrganisationState(), org.getLocale()); + writeAuditLog(user, org, orgForm, org.getOrganisationState(), org.getLocale()); } org.setLocale(locale); org.setOrganisationState(state); @@ -170,12 +170,12 @@ } } - private void writeAuditLog(Organisation org, DynaActionForm orgForm, OrganisationState newState, + private void writeAuditLog(UserDTO user, Organisation org, DynaActionForm orgForm, OrganisationState newState, SupportedLocale newLocale) { WebApplicationContext ctx = WebApplicationContextUtils .getRequiredWebApplicationContext(getServlet().getServletContext()); - IAuditService auditService = (IAuditService) ctx.getBean("auditService"); + ILogEventService logEventService = (ILogEventService) ctx.getBean("logEventService"); MessageService messageService = (MessageService) ctx.getBean("adminMessageService"); String message; @@ -190,50 +190,57 @@ args[2] = org.getOrganisationState().getDescription(); args[3] = newState.getDescription(); message = messageService.getMessage(key, args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } if (!StringUtils.equals(org.getName(), (String) orgForm.get("name"))) { args[0] = "name"; args[2] = org.getName(); args[3] = (String) orgForm.get("name"); message = messageService.getMessage(key, args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } if (!StringUtils.equals(org.getCode(), (String) orgForm.get("code"))) { args[0] = "code"; args[2] = org.getCode(); args[3] = (String) orgForm.get("code"); message = messageService.getMessage(key, args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } if (!StringUtils.equals(org.getDescription(), orgForm.getString("description"))) { args[0] = "description"; args[2] = org.getDescription(); args[3] = (String) orgForm.get("description"); message = messageService.getMessage(key, args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } if (!org.getCourseAdminCanAddNewUsers().equals(orgForm.get("courseAdminCanAddNewUsers"))) { args[0] = "courseAdminCanAddNewUsers"; args[2] = org.getCourseAdminCanAddNewUsers() ? "true" : "false"; args[3] = (Boolean) orgForm.get("courseAdminCanAddNewUsers") ? "true" : "false"; message = messageService.getMessage(key, args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } if (!org.getCourseAdminCanBrowseAllUsers().equals(orgForm.get("courseAdminCanBrowseAllUsers"))) { args[0] = "courseAdminCanBrowseAllUsers"; args[2] = org.getCourseAdminCanBrowseAllUsers() ? "true" : "false"; args[3] = (Boolean) orgForm.get("courseAdminCanBrowseAllUsers") ? "true" : "false"; message = messageService.getMessage(key, args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } if (!org.getCourseAdminCanChangeStatusOfCourse() .equals(orgForm.get("courseAdminCanChangeStatusOfCourse"))) { args[0] = "courseAdminCanChangeStatusOfCourse"; args[2] = org.getCourseAdminCanChangeStatusOfCourse() ? "true" : "false"; args[3] = (Boolean) orgForm.get("courseAdminCanChangeStatusOfCourse") ? "true" : "false"; message = messageService.getMessage(key, args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } /* * this field not set yet @@ -251,14 +258,16 @@ args[2] = org.getLocale().getDescription(); args[3] = newLocale.getDescription(); message = messageService.getMessage(key, args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } } else { String[] args = new String[2]; args[0] = org.getName() + "(" + org.getOrganisationId() + ")"; args[1] = org.getOrganisationType().getName(); message = messageService.getMessage("audit.organisation.create", args); - auditService.log(AdminConstants.MODULE_NAME, message); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, user != null ? user.getUserID() : null, + null, null, null, message); } } Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserAction.java =================================================================== diff -u -r39f1f7974c647ec9524ebb630759a27094027c9c -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserAction.java (.../UserAction.java) (revision 39f1f7974c647ec9524ebb630759a27094027c9c) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserAction.java (.../UserAction.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -21,7 +21,6 @@ * **************************************************************** */ - package org.lamsfoundation.lams.admin.web.action; import java.util.ArrayList; @@ -39,9 +38,10 @@ import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; -import org.lamsfoundation.lams.admin.AdminConstants; import org.lamsfoundation.lams.admin.service.AdminServiceProxy; import org.lamsfoundation.lams.admin.web.dto.UserOrgRoleDTO; +import org.lamsfoundation.lams.logevent.LogEvent; +import org.lamsfoundation.lams.logevent.service.ILogEventService; import org.lamsfoundation.lams.themes.Theme; import org.lamsfoundation.lams.themes.service.IThemeService; import org.lamsfoundation.lams.timezone.Timezone; @@ -57,11 +57,14 @@ import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.UserOrganisationRole; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; import org.lamsfoundation.lams.util.LanguageUtil; import org.lamsfoundation.lams.util.MessageService; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; /** * @author Jun-Dir Liew @@ -129,7 +132,8 @@ if (!canEdit) { OrganisationType orgType = org.getOrganisationType(); Integer orgIdOfCourse = orgType.getOrganisationTypeId().equals(OrganisationType.CLASS_TYPE) - ? org.getParentOrganisation().getOrganisationId() : orgId; + ? org.getParentOrganisation().getOrganisationId() + : orgId; User requestor = service.getUserByLogin(request.getRemoteUser()); if (service.isUserInRole(requestor.getUserId(), orgIdOfCourse, Role.GROUP_ADMIN) || service.isUserInRole(requestor.getUserId(), orgIdOfCourse, Role.GROUP_MANAGER)) { @@ -176,7 +180,7 @@ } userForm.set("userTheme", userSelectedTheme); userForm.set("initialPortraitId", user.getPortraitUuid()); - + //property available for modification only to sysadmins userForm.set("twoFactorAuthenticationEnabled", user.isTwoFactorAuthenticationEnabled()); } else { // create a user @@ -188,7 +192,7 @@ } } userForm.set("orgId", (org == null ? null : org.getOrganisationId())); - + // sysadmins can mark users as required to use two-factor authentication if (request.isUserInRole(Role.SYSADMIN)) { request.setAttribute("isSysadmin", true); @@ -314,15 +318,17 @@ request.setAttribute("errorMessage", messageService.getMessage("error.authorisation")); return mapping.findForward("error"); } + UserDTO sysadmin = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); Integer orgId = WebUtil.readIntParam(request, "orgId", true); Integer userId = WebUtil.readIntParam(request, "userId"); service.disableUser(userId); String[] args = new String[1]; args[0] = userId.toString(); String message = messageService.getMessage("audit.user.disable", args); - AdminServiceProxy.getAuditService(getServlet().getServletContext()).log(AdminConstants.MODULE_NAME, message); - + ILogEventService logEventService = AdminServiceProxy.getLogEventService(getServlet().getServletContext()); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, sysadmin != null ? sysadmin.getUserID() : null, userId, + null, null, message); if ((orgId == null) || (orgId == 0)) { return mapping.findForward("usersearch"); } else { @@ -341,6 +347,7 @@ request.setAttribute("errorMessage", messageService.getMessage("error.authorisation")); return mapping.findForward("error"); } + UserDTO sysadmin = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); Integer orgId = WebUtil.readIntParam(request, "orgId", true); Integer userId = WebUtil.readIntParam(request, "userId"); @@ -354,8 +361,9 @@ String[] args = new String[1]; args[0] = userId.toString(); String message = messageService.getMessage("audit.user.delete", args); - AdminServiceProxy.getAuditService(getServlet().getServletContext()).log(AdminConstants.MODULE_NAME, message); - + ILogEventService logEventService = AdminServiceProxy.getLogEventService(getServlet().getServletContext()); + logEventService.logEvent(LogEvent.TYPE_USER_ORG_ADMIN, sysadmin != null ? sysadmin.getUserID() : null, userId, + null, null, message); if ((orgId == null) || (orgId == 0)) { return mapping.findForward("usersearch"); } else { Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserSaveAction.java =================================================================== diff -u -r85ef8aca5722a36582117db1e8b988e2c16b6369 -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserSaveAction.java (.../UserSaveAction.java) (revision 85ef8aca5722a36582117db1e8b988e2c16b6369) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/UserSaveAction.java (.../UserSaveAction.java) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -37,7 +37,6 @@ import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; import org.apache.struts.action.DynaActionForm; -import org.lamsfoundation.lams.admin.AdminConstants; import org.lamsfoundation.lams.admin.service.AdminServiceProxy; import org.lamsfoundation.lams.security.ISecurityService; import org.lamsfoundation.lams.themes.Theme; @@ -92,6 +91,7 @@ response.sendError(HttpServletResponse.SC_FORBIDDEN, "Only Sysadmin has edit permisions"); return null; } + UserDTO sysadmin = (UserDTO) SessionManager.getSession().getAttribute(AttributeNames.USER); UserSaveAction.log.debug("orgId: " + orgId); Boolean edit = false; @@ -214,7 +214,7 @@ UserSaveAction.service.saveUser(user); // make 'create user' audit log entry - UserSaveAction.service.auditUserCreated(user, AdminConstants.MODULE_NAME); + UserSaveAction.service.logUserCreated(user, sysadmin); UserSaveAction.log.debug("user: " + user.toString()); } Index: lams_admin/web/logevent.jsp =================================================================== diff -u -r5f82321c5864250c612773630ff209a45e71a3f1 -rfcc5eca8a605afdc9e927366827553a7862000cd --- lams_admin/web/logevent.jsp (.../logevent.jsp) (revision 5f82321c5864250c612773630ff209a45e71a3f1) +++ lams_admin/web/logevent.jsp (.../logevent.jsp) (revision fcc5eca8a605afdc9e927366827553a7862000cd) @@ -18,6 +18,9 @@