Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml,v
diff -u -r1.6 -r1.7
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml 27 Mar 2006 22:24:32 -0000 1.6
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml 18 May 2006 01:57:58 -0000 1.7
@@ -97,6 +97,7 @@
+
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Message.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Message.java,v
diff -u -r1.25 -r1.26
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Message.java 6 Apr 2006 06:40:39 -0000 1.25
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/persistence/Message.java 18 May 2006 01:57:57 -0000 1.26
@@ -31,6 +31,7 @@
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.contentrepository.ItemNotFoundException;
import org.lamsfoundation.lams.contentrepository.NodeKey;
@@ -452,5 +453,11 @@
public void setReport(ForumReport report) {
this.report = report;
}
-
+
+ public String toString() {
+ return new ToStringBuilder(this).
+ append("uid",uid).
+ append("subject",subject).
+ append("body",body).toString();
+ }
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java,v
diff -u -r1.43 -r1.44
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 20 Apr 2006 04:54:38 -0000 1.43
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java 18 May 2006 01:57:57 -0000 1.44
@@ -79,6 +79,7 @@
import org.lamsfoundation.lams.tool.forum.util.TopicComparator;
import org.lamsfoundation.lams.tool.service.ILamsToolService;
import org.lamsfoundation.lams.util.MessageService;
+import org.lamsfoundation.lams.util.audit.IAuditService;
/**
*
@@ -100,15 +101,24 @@
private ForumToolContentHandler forumToolContentHandler;
private IRepositoryService repositoryService;
private ILearnerService learnerService;
+ private IAuditService auditService;
private MessageService messageService;
//---------------------------------------------------------------------
// Inversion of Control Methods - Method injection
//---------------------------------------------------------------------
+ public void setAuditService(IAuditService auditService) {
+ this.auditService = auditService;
+ }
+
+ public IAuditService getAuditService( ) {
+ return auditService;
+ }
+
public void setMessageService(MessageService messageService) {
this.messageService = messageService;
}
- public Forum updateForum(Forum forum) throws PersistenceException {
+ public Forum updateForum(Forum forum) throws PersistenceException {
forumDao.saveOrUpdate(forum);
return forum;
}
@@ -162,6 +172,7 @@
}
public Message updateTopic(Message message) throws PersistenceException {
+
//update message
messageDao.saveOrUpdate(message);
@@ -178,10 +189,20 @@
public Message updateMessageHideFlag(Long messageId, boolean hideFlag) {
Message message = getMessage(messageId);
- message.setHideFlag(hideFlag);
-
- // update message
- messageDao.update(message);
+ if ( message !=null ) {
+ if ( hideFlag ) {
+ auditService.logHideEntry(ForumConstants.TOOL_SIGNATURE, message.getCreatedBy().getUserId(),
+ message.getCreatedBy().getLoginName(), message.toString());
+ } else {
+ auditService.logShowEntry(ForumConstants.TOOL_SIGNATURE, message.getCreatedBy().getUserId(),
+ message.getCreatedBy().getLoginName(), message.toString());
+ }
+
+ message.setHideFlag(hideFlag);
+
+ // update message
+ messageDao.update(message);
+ }
return message;
}
@@ -293,7 +314,7 @@
List unsortedThread = messageSeqDao.getTopicThread(rootTopicId);
Iterator iter = unsortedThread.iterator();
MessageSeq msgSeq;
- SortedMap map = new TreeMap(new TopicComparator());
+ SortedMap map = new TreeMap(new TopicComparator());
while(iter.hasNext()){
msgSeq = (MessageSeq) iter.next();
map.put(msgSeq,msgSeq.getMessage());
@@ -313,7 +334,7 @@
//sorted by last post date
Message msg;
- SortedMap map = new TreeMap(new DateComparator());
+ SortedMap map = new TreeMap(new DateComparator());
Iterator iter = topicsBySession.iterator();
while(iter.hasNext()){
msg = (Message) iter.next();
@@ -324,7 +345,7 @@
msg = (Message) iter.next();
map.put(msg.getLastReplyDate(),msg);
}
- return MessageDTO.getMessageDTO(new ArrayList(map.values()));
+ return MessageDTO.getMessageDTO(new ArrayList(map.values()));
}
@@ -355,14 +376,14 @@
public List getAuthoredTopics(Long forumUid) {
List list = messageDao.getTopicsFromAuthor(forumUid);
- TreeMap map = new TreeMap(new DateComparator());
+ TreeMap map = new TreeMap(new DateComparator());
//sorted by create date
Iterator iter = list.iterator();
while(iter.hasNext()){
Message topic = (Message) iter.next();
map.put(topic.getCreated(),topic);
}
- return MessageDTO.getMessageDTO(new ArrayList(map.values()));
+ return MessageDTO.getMessageDTO(new ArrayList(map.values()));
}
public void updateSession(ForumToolSession session) {
@@ -419,10 +440,10 @@
* @param map
* @return
*/
- private List getSortedMessageDTO(SortedMap map) {
+ private List getSortedMessageDTO(SortedMap map) {
Iterator iter;
MessageSeq msgSeq;
- List msgDtoList = new ArrayList();
+ List msgDtoList = new ArrayList();
iter =map.entrySet().iterator();
while(iter.hasNext()){
Map.Entry entry = (Entry) iter.next();
@@ -491,7 +512,7 @@
}
}
private Forum getDefaultForum(){
- Long defaultForumId = getToolDefaultContentIdBySignature(ForumConstants.TOOLSIGNNATURE);
+ Long defaultForumId = getToolDefaultContentIdBySignature(ForumConstants.TOOL_SIGNATURE);
Forum defaultForum = getForumByContentId(defaultForumId);
if(defaultForum == null)
{
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java,v
diff -u -r1.27 -r1.28
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 6 Apr 2006 06:40:40 -0000 1.27
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/IForumService.java 18 May 2006 01:57:57 -0000 1.28
@@ -33,6 +33,7 @@
import org.lamsfoundation.lams.tool.forum.persistence.ForumUser;
import org.lamsfoundation.lams.tool.forum.persistence.Message;
import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException;
+import org.lamsfoundation.lams.util.audit.IAuditService;
/**
* User: conradb
@@ -266,4 +267,8 @@
// Miscellaneous Method
//************************************************************************************
public void releaseMarksForSession(Long sessionID);
+
+ /** The topic updates (for monitoring) are done in the web layer, so need the audit service to log the updates */
+ public IAuditService getAuditService( );
+
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java,v
diff -u -r1.24 -r1.25
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 6 Apr 2006 06:40:39 -0000 1.24
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 18 May 2006 01:57:58 -0000 1.25
@@ -32,7 +32,7 @@
public interface ForumConstants {
public static final int COMPLETED = 1;
- public static final String TOOLSIGNNATURE = "lafrum11";
+ public static final String TOOL_SIGNATURE = "lafrum11";
public final static int MAX_FILE_SIZE = 250 * 1000;
public final static String FORUM_SERVICE = "forumService";
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java,v
diff -u -r1.27 -r1.28
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 6 Apr 2006 06:40:40 -0000 1.27
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 18 May 2006 01:57:57 -0000 1.28
@@ -52,7 +52,6 @@
import org.lamsfoundation.lams.tool.forum.persistence.ForumException;
import org.lamsfoundation.lams.tool.forum.persistence.ForumToolSession;
import org.lamsfoundation.lams.tool.forum.persistence.ForumUser;
-import org.lamsfoundation.lams.tool.forum.persistence.ForumUserDao;
import org.lamsfoundation.lams.tool.forum.persistence.Message;
import org.lamsfoundation.lams.tool.forum.persistence.PersistenceException;
import org.lamsfoundation.lams.tool.forum.service.ForumServiceProxy;
@@ -449,15 +448,29 @@
MessageForm messageForm = (MessageForm) form;
Message message = messageForm.getMessage();
+
+ boolean makeAuditEntry = ToolAccessMode.TEACHER.equals((ToolAccessMode) request.getSession().getAttribute(ForumConstants.MODE));
+ String oldMessageString = null;
+
// get PO from database and sync with Form
Message messagePO = forumService.getMessage(topicId);
+ if ( makeAuditEntry ) {
+ oldMessageString = messagePO.toString();
+ }
messagePO.setSubject(message.getSubject());
messagePO.setBody(message.getBody());
messagePO.setUpdated(new Date());
messagePO.setModifiedBy(getCurrentUser(request));
setAttachment(messageForm, messagePO);
+ if ( makeAuditEntry ) {
+ forumService.getAuditService().logChange(ForumConstants.TOOL_SIGNATURE,
+ messagePO.getCreatedBy().getUserId(), messagePO.getCreatedBy().getLoginName(),
+ oldMessageString, messagePO.toString());
+ }
+
// save message into database
+ // if we are in monitoring then we are probably editing some else's entry so log the change.
forumService.updateTopic(messagePO);
// echo back this topic thread into page
@@ -536,11 +549,25 @@
Long uuID = new Long(WebUtil.readLongParam(request, "uuid"));
forumService = getForumManager();
forumService.deleteFromRepository(uuID, versionID);
+
+ boolean makeAuditEntry = ToolAccessMode.TEACHER.equals((ToolAccessMode) request.getSession().getAttribute(ForumConstants.MODE));
+ String oldMessageString = null;
+
// get value from HttpSession
Message messagePO = forumService.getMessage(topicId);
+ if ( makeAuditEntry ) {
+ oldMessageString = messagePO.toString();
+ }
messagePO.setUpdated(new Date());
messagePO.setModifiedBy(getCurrentUser(request));
messagePO.setAttachments(null);
+
+ if ( makeAuditEntry ) {
+ forumService.getAuditService().logChange(ForumConstants.TOOL_SIGNATURE,
+ messagePO.getCreatedBy().getUserId(), messagePO.getCreatedBy().getLoginName(),
+ oldMessageString, messagePO.toString());
+ }
+
// save message into database
forumService.updateTopic(messagePO);