cmailleux 2005/10/19 14:54:43 CEST
Modified files:
core/src/java/org/jahia/hibernate/dao
JahiaContainerListDAO.java
JahiaFieldsDataDAO.java
core/src/java/org/jahia/hibernate/manager
JahiaAuditLogManager.java
core/src/java/org/jahia/services/audit
JahiaDBAuditLogManagerService.java
LoggingEventListener.java
Log:
Add logging of activation event
Revision Changes Path
1.9 +1 -1
jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java.diff?r1=1.8&r2=1.9&f=h
1.20 +1 -1
jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java.diff?r1=1.19&r2=1.20&f=h
1.6 +1 -1
jahia/core/src/java/org/jahia/hibernate/manager/JahiaAuditLogManager.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/manager/JahiaAuditLogManager.java.diff?r1=1.5&r2=1.6&f=h
1.9 +89 -16
jahia/core/src/java/org/jahia/services/audit/JahiaDBAuditLogManagerService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/audit/JahiaDBAuditLogManagerService.java.diff?r1=1.8&r2=1.9&f=h
1.2 +30 -2
jahia/core/src/java/org/jahia/services/audit/LoggingEventListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/audit/LoggingEventListener.java.diff?r1=1.1&r2=1.2&f=h
Index: JahiaContainerListDAO.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/dao/JahiaContainerListDAO.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- JahiaContainerListDAO.java 17 Oct 2005 15:13:57 -0000 1.8
+++ JahiaContainerListDAO.java 19 Oct 2005 12:54:42 -0000 1.9
@@ -279,7 +279,7 @@
public List getNonDeletedContainerListIdsInPage(Integer pageId) {
List retval = null;
String hql = "select distinct l.comp_id.id, l.comp_id.workflowState
from JahiaContainerList l where l.pageid=? " +
- "and l.comp_id.workflowState >=1 and
l.comp_id.versionId <> -1 " +
+ "and l.comp_id.versionId <> -1 " +
"order by l.comp_id.workflowState desc";
if (pageId != null) {
final HibernateTemplate template = getHibernateTemplate();
Index: JahiaFieldsDataDAO.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- JahiaFieldsDataDAO.java 17 Oct 2005 15:13:57 -0000 1.19
+++ JahiaFieldsDataDAO.java 19 Oct 2005 12:54:42 -0000 1.20
@@ -233,7 +233,7 @@
public List findNonDeletedFieldsIdInPage(Integer pageId) {
List retVal = null;
String hql = "select distinct f.comp_id.id,f.comp_id.workflowState
from JahiaFieldsData f " +
- "where f.pageId=? and f.comp_id.workflowState>=1 and
f.comp_id.versionId <> -1 " +
+ "where f.pageId=? and f.comp_id.versionId <> -1 " +
"order by f.comp_id.workflowState desc";
if (pageId != null) {
final HibernateTemplate template = getHibernateTemplate();
Index: JahiaAuditLogManager.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/manager/JahiaAuditLogManager.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- JahiaAuditLogManager.java 3 Aug 2005 12:37:20 -0000 1.5
+++ JahiaAuditLogManager.java 19 Oct 2005 12:54:43 -0000 1.6
@@ -87,7 +87,7 @@
// Children can be CONTAINER...
case LoggingEventListener.CONTAINERLIST_TYPE:
- list =
containerDAO.getNonDeletedStagingContainerIdsFromList(new Integer(objectID));
+ list = containerDAO.getAllContainerIdsFromList(new
Integer(objectID));
integer = new Integer(JahiaObjectTool.CONTAINER_TYPE);
fillListWithArrayOfIntegers(list, integer, retList);
break;
Index: JahiaDBAuditLogManagerService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/audit/JahiaDBAuditLogManagerService.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- JahiaDBAuditLogManagerService.java 30 Sep 2005 17:24:37 -0000
1.8
+++ JahiaDBAuditLogManagerService.java 19 Oct 2005 12:54:43 -0000
1.9
@@ -52,10 +52,18 @@
import org.jahia.params.ProcessingContext;
import org.jahia.services.pages.JahiaPage;
import org.jahia.services.pages.JahiaPageDefinition;
+import org.jahia.services.pages.ContentPage;
import org.jahia.services.sites.JahiaSite;
import org.jahia.services.usermanager.JahiaUser;
+import org.jahia.services.fields.ContentField;
+import org.jahia.services.containers.ContentContainer;
+import org.jahia.services.containers.ContentContainerList;
import org.jahia.utils.JahiaObjectTool;
import org.jahia.hibernate.manager.JahiaAuditLogManager;
+import org.jahia.content.ContentFieldKey;
+import org.jahia.content.ContentContainerKey;
+import org.jahia.content.ContentContainerListKey;
+import org.jahia.content.ContentPageKey;
public class JahiaDBAuditLogManagerService extends
JahiaAuditLogManagerService {
@@ -308,16 +316,35 @@
return ((JahiaPageDefinition)je.getObject ()).getID ();
default:
throw new JahiaException (MSG_INTERNAL_ERROR,
- "Incompatible Object Type passed to
JahiaAuditLogManager",
- JahiaException.SERVICE_ERROR,
- JahiaException.CRITICAL_SEVERITY);
+ "Incompatible Object Type
passed to JahiaAuditLogManager",
+ JahiaException.SERVICE_ERROR,
+
JahiaException.CRITICAL_SEVERITY);
}
} catch (Exception e) {
- logger.debug ("EXCEPTION MESSAGE :" + e.getMessage ());
- throw new JahiaException (MSG_INTERNAL_ERROR,
- "Exception occurred while retrieving Event Object ID",
- JahiaException.SERVICE_ERROR,
- JahiaException.CRITICAL_SEVERITY);
+ try {
+ switch (objectType) {
+
+ case FIELD_TYPE:
+ return ((ContentFieldKey)
je.getObject()).getIdInType();
+ case CONTAINER_TYPE:
+ return ((ContentContainerKey)
je.getObject()).getIdInType();
+ case CONTAINERLIST_TYPE:
+ return ((ContentContainerListKey)
je.getObject()).getIdInType();
+ case PAGE_TYPE:
+ return ((ContentPageKey)
je.getObject()).getIdInType();
+ default:
+ throw new JahiaException(MSG_INTERNAL_ERROR,
+ "Incompatible Object Type
passed to JahiaAuditLogManager",
+
JahiaException.SERVICE_ERROR,
+
JahiaException.CRITICAL_SEVERITY);
+ }
+ } catch (Exception e1) {
+ logger.debug("EXCEPTION MESSAGE :" + e1.getMessage());
+ throw new JahiaException(MSG_INTERNAL_ERROR,
+ "Exception occurred while
retrieving Event Object ID",
+ JahiaException.SERVICE_ERROR,
+ JahiaException.CRITICAL_SEVERITY);
+ }
}
} // end getObjectID
@@ -375,16 +402,62 @@
default:
throw new JahiaException (MSG_INTERNAL_ERROR,
- "Incompatible Object Type passed to
JahiaAuditLogManager",
- JahiaException.SERVICE_ERROR,
- JahiaException.CRITICAL_SEVERITY);
+ "Incompatible Object Type
passed to JahiaAuditLogManager",
+ JahiaException.SERVICE_ERROR,
+
JahiaException.CRITICAL_SEVERITY);
}
} catch (Exception e) {
- logger.debug ("EXCEPTION MESSAGE :" + e.getMessage ());
- throw new JahiaException (MSG_INTERNAL_ERROR,
- "Exception occurred while retrieving Event Object ID",
- JahiaException.SERVICE_ERROR,
- JahiaException.CRITICAL_SEVERITY);
+ try {
+ int idInType;
+ switch (objectType) {
+ case FIELD_TYPE:
+ idInType = ((ContentFieldKey)
je.getObject()).getIdInType();
+ ContentField cf = ContentField.getField(idInType);
+ if (cf.getContainerID() == 0) {
+ parent[0] = "" + cf.getPageID();
+ parent[1] = "" + PAGE_TYPE;
+ } else {
+ parent[0] = "" + cf.getContainerID();
+ parent[1] = "" + CONTAINER_TYPE;
+ }
+ break;
+ case CONTAINER_TYPE:
+ idInType = ((ContentContainerKey)
je.getObject()).getIdInType();
+ ContentContainer container =
ContentContainer.getContainer(idInType);
+ parent[0] = "" +
container.getParentContainerListID();
+ parent[1] = "" + CONTAINERLIST_TYPE;
+ break;
+ case CONTAINERLIST_TYPE:
+ idInType = ((ContentContainerListKey)
je.getObject()).getIdInType();
+ ContentContainerList containerList =
ContentContainerList.getContainerList(idInType);
+ if (containerList.getParentContainerID() == 0) {
+ parent[0] = "" + containerList.getPageID();
+ parent[1] = "" + PAGE_TYPE;
+ } else {
+ parent[0] = "" +
containerList.getParentContainerID();
+ parent[1] = "" + CONTAINER_TYPE;
+ }
+ break;
+ case PAGE_TYPE:
+ idInType = ((ContentPageKey)
je.getObject()).getIdInType();
+ ContentPage contentPage =
ContentPage.getPage(idInType);
+ parent[0] = "" + contentPage.getID();
+ parent[1] = "" + PAGE_TYPE;
+ break;
+ default:
+ throw new JahiaException(MSG_INTERNAL_ERROR,
+ "Incompatible Object Type
passed to JahiaAuditLogManager",
+
JahiaException.SERVICE_ERROR,
+
JahiaException.CRITICAL_SEVERITY);
+ }
+ return parent;
+ } catch (Exception e1) {
+ logger.debug("EXCEPTION MESSAGE :" + e1.getMessage());
+ throw new JahiaException(MSG_INTERNAL_ERROR,
+ "Exception occurred while
retrieving Event Object Parent",
+ JahiaException.SERVICE_ERROR,
+ JahiaException.CRITICAL_SEVERITY);
+ }
}
}
Index: LoggingEventListener.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/audit/LoggingEventListener.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LoggingEventListener.java 30 Mar 2004 14:11:52 -0000 1.1
+++ LoggingEventListener.java 19 Oct 2005 12:54:43 -0000 1.2
@@ -50,7 +50,14 @@
import org.jahia.registries.ServicesRegistry;
import org.jahia.services.pages.JahiaPage;
import org.jahia.services.pages.JahiaPageDefinition;
+import org.jahia.services.pages.ContentPage;
+import org.jahia.services.version.ActivationTestResults;
+import org.jahia.services.fields.ContentField;
+import org.jahia.services.containers.ContentContainer;
+import org.jahia.services.containers.ContentContainerList;
import org.jahia.utils.JahiaObjectTool;
+import org.jahia.content.events.ContentActivationEvent;
+import org.jahia.content.ContentObject;
public class LoggingEventListener extends JahiaEventListener {
@@ -81,12 +88,12 @@
mAuditLogManager = registry.getJahiaAuditLogManagerService ();
if (mAuditLogManager == null) {
throw new JahiaException (MSG_INTERNAL_ERROR, "User manager
could not get the Audit Log Manager Service instance.",
- JahiaException.SERVICE_ERROR,
JahiaException.CRITICAL_SEVERITY);
+ JahiaException.SERVICE_ERROR,
JahiaException.CRITICAL_SEVERITY);
}
} else {
throw new JahiaException (MSG_INTERNAL_ERROR, "User manager
could not get the Service Registry instance.",
- JahiaException.REGISTRY_ERROR,
JahiaException.CRITICAL_SEVERITY);
+ JahiaException.REGISTRY_ERROR,
JahiaException.CRITICAL_SEVERITY);
}
} // end constructor
@@ -223,4 +230,25 @@
}
}
+ public void contentActivation(ContentActivationEvent theEvent) {
+ if (theEvent.getActivationTestResults().getStatus() ==
ActivationTestResults.COMPLETED_OPERATION_STATUS) {
+ ContentObject contentObject = theEvent.getContentObject();
+ boolean isDeleted = false;
+ try {
+ isDeleted =
contentObject.isDeleted(theEvent.getSaveVersion().getVersionID());
+ } catch (JahiaException e) {
+ }
+ String action = "activation";
+ if(isDeleted) action = "deletion";
+ if (contentObject instanceof ContentField) {
+ mAuditLogManager.logEvent(theEvent, FIELD_TYPE, action+" of
field");
+ } else if (contentObject instanceof ContentContainer) {
+ mAuditLogManager.logEvent(theEvent, CONTAINER_TYPE, action+"
of container");
+ } else if (contentObject instanceof ContentContainerList) {
+ mAuditLogManager.logEvent(theEvent, CONTAINERLIST_TYPE,
action+" of container list");
+ } else if (contentObject instanceof ContentPage) {
+ mAuditLogManager.logEvent(theEvent, PAGE_TYPE, action+" of
page");
+ }
+ }
+ }
}