Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -r1973448340d094a80e2e45079dcda82555649155 -raee0c08639547cfdf353db8f22c4aedf22092787
Binary files differ
Index: lams_common/src/java/org/lamsfoundation/lams/util/audit/AuditService.java
===================================================================
diff -u -r3de11bf54a449905b116b6a3d2569c91b286a227 -raee0c08639547cfdf353db8f22c4aedf22092787
--- lams_common/src/java/org/lamsfoundation/lams/util/audit/AuditService.java (.../AuditService.java) (revision 3de11bf54a449905b116b6a3d2569c91b286a227)
+++ lams_common/src/java/org/lamsfoundation/lams/util/audit/AuditService.java (.../AuditService.java) (revision aee0c08639547cfdf353db8f22c4aedf22092787)
@@ -32,98 +32,103 @@
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
-/**
- * Write out audit entries to a log4j based log file. Gets the user details from the shared session.
-*/
+/**
+ * Write out audit entries to a log4j based log file. Gets the user details from the shared session.
+ */
/*
- * Relies on the followig two entries in the log4j configuration file:
+ * Relies on the followig two entries in the log4j configuration file:
*
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
*/
public class AuditService implements IAuditService {
- static Logger logger = Logger.getLogger(AuditService.class.getName());
+ static Logger logger = Logger.getLogger(AuditService.class.getName());
- private final String AUDIT_CHANGE_I18N_KEY = "audit.change.entry";
- private final String AUDIT_HIDE_I18N_KEY = "audit.hide.entry";
- private final String AUDIT_SHOW_I18N_KEY = "audit.show.entry";
- protected MessageService messageService;
+ private final String AUDIT_CHANGE_I18N_KEY = "audit.change.entry";
+ private final String AUDIT_MARK_CHANGE_I18N_KEY = "audit.change.mark";
+ private final String AUDIT_HIDE_I18N_KEY = "audit.hide.entry";
+ private final String AUDIT_SHOW_I18N_KEY = "audit.show.entry";
+ protected MessageService messageService;
- private String getUserString() {
- HttpSession ss = SessionManager.getSession();
- if ( ss != null ) {
- UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
- if ( user != null ) {
- return getUserString(user);
- }
- }
- return "System Generated (No Current User): ";
+ private String getUserString() {
+ HttpSession ss = SessionManager.getSession();
+ if (ss != null) {
+ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
+ if (user != null) {
+ return getUserString(user);
+ }
}
-
- private String getUserString(UserDTO userDTO) {
- return userDTO.getLogin()+"("+userDTO.getUserID()+"): ";
- }
+ return "System Generated (No Current User): ";
+ }
- public void log(String moduleName, String message) {
- logger.info(getUserString()+moduleName+": "+message);
- }
-
- public void log(UserDTO userDTO, String moduleName, String message) {
- logger.info(getUserString(userDTO)+moduleName+": "+message);
- }
+ private String getUserString(UserDTO userDTO) {
+ return userDTO.getLogin() + "(" + userDTO.getUserID() + "): ";
+ }
- public void logChange(String moduleName, Long originalUserId, String originalUserLogin,
- String originalText, String newText) {
- String[] args = new String[3];
- args[0] = originalUserLogin+"("+originalUserId+")";
- args[1] = originalText;
- args[2] = newText;
- String message = messageService.getMessage(AUDIT_CHANGE_I18N_KEY, args);
- log(moduleName, message);
- }
+ public void log(String moduleName, String message) {
+ logger.info(getUserString() + moduleName + ": " + message);
+ }
- public void logHideEntry(String moduleName, Long originalUserId, String originalUserLogin, String hiddenItem) {
- String[] args = new String[3];
- args[0] = originalUserLogin+"("+originalUserId+")";
- args[1] = hiddenItem;
- String message = messageService.getMessage(AUDIT_HIDE_I18N_KEY, args);
- log(moduleName, message);
- }
+ public void log(UserDTO userDTO, String moduleName, String message) {
+ logger.info(getUserString(userDTO) + moduleName + ": " + message);
+ }
- public void logShowEntry(String moduleName, Long originalUserId, String originalUserLogin, String hiddenItem) {
- String[] args = new String[3];
- args[0] = originalUserLogin+"("+originalUserId+")";
- args[1] = hiddenItem;
- String message = messageService.getMessage(AUDIT_SHOW_I18N_KEY, args);
- log(moduleName, message);
- }
+ public void logChange(String moduleName, Long originalUserId, String originalUserLogin, String originalText,
+ String newText) {
+ String[] args = new String[3];
+ args[0] = originalUserLogin + "(" + originalUserId + ")";
+ args[1] = originalText;
+ args[2] = newText;
+ String message = messageService.getMessage(AUDIT_CHANGE_I18N_KEY, args);
+ log(moduleName, message);
+ }
- /* *** Spring Injection Methods *************/
-
- public MessageService getMessageService() {
- return messageService;
- }
+ public void logMarkChange(String moduleName, Long originalUserId, String originalUserLogin, String originalMark,
+ String newMark) {
+ String[] args = new String[3];
+ args[0] = originalUserLogin + "(" + originalUserId + ")";
+ args[1] = originalMark;
+ args[2] = newMark;
+ String message = messageService.getMessage(AUDIT_MARK_CHANGE_I18N_KEY, args);
+ log(moduleName, message);
+ }
- public void setMessageService(MessageService messageService) {
- this.messageService = messageService;
- }
+ public void logHideEntry(String moduleName, Long originalUserId, String originalUserLogin, String hiddenItem) {
+ String[] args = new String[3];
+ args[0] = originalUserLogin + "(" + originalUserId + ")";
+ args[1] = hiddenItem;
+ String message = messageService.getMessage(AUDIT_HIDE_I18N_KEY, args);
+ log(moduleName, message);
+ }
+ public void logShowEntry(String moduleName, Long originalUserId, String originalUserLogin, String hiddenItem) {
+ String[] args = new String[3];
+ args[0] = originalUserLogin + "(" + originalUserId + ")";
+ args[1] = hiddenItem;
+ String message = messageService.getMessage(AUDIT_SHOW_I18N_KEY, args);
+ log(moduleName, message);
+ }
+
+ /* *** Spring Injection Methods ************ */
+
+ public MessageService getMessageService() {
+ return messageService;
+ }
+
+ public void setMessageService(MessageService messageService) {
+ this.messageService = messageService;
+ }
+
}
Index: lams_common/src/java/org/lamsfoundation/lams/util/audit/IAuditService.java
===================================================================
diff -u -r96393fcda711611ec39dbc961ab6431b1f16bb4e -raee0c08639547cfdf353db8f22c4aedf22092787
--- lams_common/src/java/org/lamsfoundation/lams/util/audit/IAuditService.java (.../IAuditService.java) (revision 96393fcda711611ec39dbc961ab6431b1f16bb4e)
+++ lams_common/src/java/org/lamsfoundation/lams/util/audit/IAuditService.java (.../IAuditService.java) (revision aee0c08639547cfdf353db8f22c4aedf22092787)
@@ -29,52 +29,90 @@
/** Public interface for a service that writes audit records */
public interface IAuditService {
- /**
- * Log a message. The username, date, moduleName and message are recorded in the audit log
- * @param moduleName module generating the audit entry e.g. learning, voting tool
- * @param message message to be logged
- */
- public void log(String moduleName, String message);
-
- /**
- * Same as above, but logs message using given userDTO instead of current session DTO.
- * Useful when importing users in a separate thread which isn't linked to main session.
- * @param userDTO
- * @param moduleName
- * @param message
- */
- public void log(UserDTO userDTO, String moduleName, String message);
+ /**
+ * Log a message. The username, date, moduleName and message are recorded in the audit log
+ *
+ * @param moduleName
+ * module generating the audit entry e.g. learning, voting tool
+ * @param message
+ * message to be logged
+ */
+ void log(String moduleName, String message);
- /**
- * Log a data change. The username, date, moduleName and change details are recorded in the audit log.
- * @param moduleName tool generating the audit entry
- * @param originalText the text before it was changed
- * @param newText the text after it was changed
- * @param originalUserID the userID of the user who created the text initially
- * @param originalUserLogin the login of the user who created the text initially
- */
- public void logChange(String moduleName, Long originalUserId, String originalUserLogin,
- String originalText, String newText);
-
- /**
- * Log staff member hiding a user entry. The username, date, moduleName and hidden entry are
- * recorded in the audit log.
- * @param moduleName tool generating the audit entry
- * @param hiddenItem String version of the item that has been hidden
- * @param newText the text after it was changed
- * @param originalUserID the userID of the user who created the text initially
- * @param originalUserLogin the login of the user who created the text initially
- */
- public void logHideEntry(String moduleName, Long originalUserId, String originalUserLogin, String hiddenItem);
+ /**
+ * Same as above, but logs message using given userDTO instead of current session DTO. Useful when importing users
+ * in a separate thread which isn't linked to main session.
+ *
+ * @param userDTO
+ * @param moduleName
+ * @param message
+ */
+ void log(UserDTO userDTO, String moduleName, String message);
- /**
- * Log staff member showing a user entry. The username, date, moduleName and hidden entry are
- * recorded in the audit log. Presumably the item was hidden previously.
- * @param moduleName tool generating the audit entry
- * @param hiddenItem String version of the item that has been hidden
- * @param newText the text after it was changed
- * @param originalUserID the userID of the user who created the text initially
- * @param originalUserLogin the login of the user who created the text initially
- */
- public void logShowEntry(String moduleName, Long originalUserId, String originalUserLogin, String hiddenItem);
+ /**
+ * Log a data change. The username, date, moduleName and change details are recorded in the audit log.
+ *
+ * @param moduleName
+ * tool generating the audit entry
+ * @param originalText
+ * the text before it was changed
+ * @param newText
+ * the text after it was changed
+ * @param originalUserID
+ * the userID of the user who created the text initially
+ * @param originalUserLogin
+ * the login of the user who created the text initially
+ */
+ void logChange(String moduleName, Long originalUserId, String originalUserLogin, String originalText, String newText);
+
+ /**
+ * Log a mark change in Gradebook. The username, date, moduleName and change details are recorded in the audit log.
+ *
+ * @param moduleName
+ * tool generating the audit entry
+ * @param originalMark
+ * the text before it was changed
+ * @param newMark
+ * the text after it was changed
+ * @param originalUserId
+ * the userID of the user who created the text initially
+ * @param originalUserLogin
+ * the login of the user who created the text initially
+ */
+ void logMarkChange(String moduleName, Long originalUserId, String originalUserLogin, String originalMark,
+ String newMark);
+
+ /**
+ * Log staff member hiding a user entry. The username, date, moduleName and hidden entry are recorded in the audit
+ * log.
+ *
+ * @param moduleName
+ * tool generating the audit entry
+ * @param hiddenItem
+ * String version of the item that has been hidden
+ * @param newText
+ * the text after it was changed
+ * @param originalUserID
+ * the userID of the user who created the text initially
+ * @param originalUserLogin
+ * the login of the user who created the text initially
+ */
+ void logHideEntry(String moduleName, Long originalUserId, String originalUserLogin, String hiddenItem);
+
+ /**
+ * Log staff member showing a user entry. The username, date, moduleName and hidden entry are recorded in the audit
+ * log. Presumably the item was hidden previously.
+ *
+ * @param moduleName
+ * tool generating the audit entry
+ * @param hiddenItem
+ * String version of the item that has been hidden
+ * @param newText
+ * the text after it was changed
+ * @param originalUserID
+ * the userID of the user who created the text initially
+ * @param originalUserLogin
+ * the login of the user who created the text initially
+ */
+ void logShowEntry(String moduleName, Long originalUserId, String originalUserLogin, String hiddenItem);
}
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml
===================================================================
diff -u -rcabd1e5deca9e19bb9739e37e823195a38f512a6 -raee0c08639547cfdf353db8f22c4aedf22092787
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision cabd1e5deca9e19bb9739e37e823195a38f512a6)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/assessmentApplicationContext.xml (.../assessmentApplicationContext.xml) (revision aee0c08639547cfdf353db8f22c4aedf22092787)
@@ -97,6 +97,9 @@
+
+
+
Index: lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java
===================================================================
diff -u -rcabd1e5deca9e19bb9739e37e823195a38f512a6 -raee0c08639547cfdf353db8f22c4aedf22092787
--- lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision cabd1e5deca9e19bb9739e37e823195a38f512a6)
+++ lams_tool_assessment/src/java/org/lamsfoundation/lams/tool/assessment/service/AssessmentServiceImpl.java (.../AssessmentServiceImpl.java) (revision aee0c08639547cfdf353db8f22c4aedf22092787)
@@ -108,6 +108,7 @@
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.util.MessageService;
+import org.lamsfoundation.lams.util.audit.IAuditService;
/**
*
@@ -145,6 +146,8 @@
private ILamsToolService toolService;
private ILearnerService learnerService;
+
+ private IAuditService auditService;
private IUserManagementService userManagementService;
@@ -787,6 +790,10 @@
Integer userId = result.getUser().getUserId().intValue();
Long toolSessionId = result.getUser().getSession().getSessionId();
gradebookService.updateActivityMark(new Double(totalMark), null, userId, toolSessionId, true);
+
+ //records mark change with audit service
+ auditService.logMarkChange(AssessmentConstants.TOOL_SIGNATURE, result.getUser().getUserId(), result.getUser()
+ .getLoginName(), "" + oldMark, "" + totalMark);
}
@Override
@@ -937,6 +944,10 @@
// set methods for Spring Bean
// *****************************************************************************
+ public void setAuditService(IAuditService auditService) {
+ this.auditService = auditService;
+ }
+
public void setLearnerService(ILearnerService learnerService) {
this.learnerService = learnerService;
}
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java
===================================================================
diff -u -r2fb529d1dd3dae1d2a106eb701e3594e686da8c5 -raee0c08639547cfdf353db8f22c4aedf22092787
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 2fb529d1dd3dae1d2a106eb701e3594e686da8c5)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision aee0c08639547cfdf353db8f22c4aedf22092787)
@@ -879,6 +879,10 @@
// propagade changes to Gradebook
int totalMark = (oldMark == null) ? oldTotalMark + newMark : oldTotalMark - oldMark + newMark;
gradebookService.updateActivityMark(new Double(totalMark), null, userId, toolSessionId, true);
+
+ //record mark change with audit service
+ auditService.logMarkChange(McAppConstants.MY_SIGNATURE, userAttempt.getMcQueUsr().getQueUsrId(), userAttempt
+ .getMcQueUsr().getUsername(), "" + oldMark, "" + totalMark);
}