knguyen 2006/01/06 15:01:00 CET
Modified files:
core/src/java/org/jahia/hibernate
JahiaHibernateDaoSupport.java
core/src/java/org/jahia/hibernate/dao JahiaFieldsDataDAO.java
core/src/java/org/jahia/hibernate/model JahiaCtndefProp.java
core/src/java/org/jahia/services/fields ContentField.java
ContentFieldTools.java
JahiaFieldBaseService.java
core/src/java/org/jahia/services/importexport
ImportHandler.java
Log:
- field's acl is parent object acl, except for direct page's fields
Revision Changes Path
1.2 +6 -0
jahia/core/src/java/org/jahia/hibernate/JahiaHibernateDaoSupport.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/JahiaHibernateDaoSupport.java.diff?r1=1.1&r2=1.2&f=h
1.28 +5 -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.27&r2=1.28&f=h
1.5 +1 -1
jahia/core/src/java/org/jahia/hibernate/model/JahiaCtndefProp.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/model/JahiaCtndefProp.java.diff?r1=1.4&r2=1.5&f=h
1.45 +6 -3
jahia/core/src/java/org/jahia/services/fields/ContentField.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/fields/ContentField.java.diff?r1=1.44&r2=1.45&f=h
1.11 +4 -1
jahia/core/src/java/org/jahia/services/fields/ContentFieldTools.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/fields/ContentFieldTools.java.diff?r1=1.10&r2=1.11&f=h
1.33 +18 -15
jahia/core/src/java/org/jahia/services/fields/JahiaFieldBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/fields/JahiaFieldBaseService.java.diff?r1=1.32&r2=1.33&f=h
1.59 +3 -4
jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java.diff?r1=1.58&r2=1.59&f=h
Index: JahiaHibernateDaoSupport.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/JahiaHibernateDaoSupport.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- JahiaHibernateDaoSupport.java 16 Dec 2005 13:07:27 -0000 1.1
+++ JahiaHibernateDaoSupport.java 6 Jan 2006 14:00:58 -0000 1.2
@@ -1,6 +1,7 @@
package org.jahia.hibernate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
+import org.hibernate.Session;
/**
* Created by IntelliJ IDEA.
@@ -11,4 +12,9 @@
*/
public class JahiaHibernateDaoSupport extends HibernateDaoSupport {
+ public void clearSession(){
+ Session session = this.getSession();
+ session.flush();
+ session.clear();
+ }
}
Index: JahiaFieldsDataDAO.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- JahiaFieldsDataDAO.java 4 Jan 2006 12:44:30 -0000 1.27
+++ JahiaFieldsDataDAO.java 6 Jan 2006 14:00:58 -0000 1.28
@@ -779,8 +779,12 @@
Map map = new HashMap(list.size());
for (int i = 0; i < list.size(); i++) {
JahiaFieldsData data = (JahiaFieldsData) list.get(i);
- map.put(new
ContentFieldKey(data.getComp_id().getId().intValue()),data.getJahiaAcl().getId());
deleteProperties(data, template);
+ if ( data.getContainerId().intValue() == 0 ||
+ (data.getIsMetadata() != null &&
data.getIsMetadata().intValue() == 1 ) ){
+ continue;
+ }
+ map.put(new
ContentFieldKey(data.getComp_id().getId().intValue()),data.getJahiaAcl().getId());
}
template.deleteAll(list);
return map;
Index: JahiaCtndefProp.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/model/JahiaCtndefProp.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- JahiaCtndefProp.java 24 Oct 2005 16:01:15 -0000 1.4
+++ JahiaCtndefProp.java 6 Jan 2006 14:00:59 -0000 1.5
@@ -47,7 +47,7 @@
}
/**
- * @hibernate.id generator-class="assigned" unsaved-value="any"
+ * @hibernate.id generator-class="assigned"
*/
public org.jahia.hibernate.model.JahiaCtndefPropPK getComp_id() {
return this.comp_id;
Index: ContentField.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/fields/ContentField.java,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- ContentField.java 4 Jan 2006 12:44:32 -0000 1.44
+++ ContentField.java 6 Jan 2006 14:00:59 -0000 1.45
@@ -958,9 +958,12 @@
throws JahiaException {
purgeContent ();
- JahiaBaseACL acl = getACL ();
- acl.delete ();
- acl = null;
+ //deleting the parent will automatically delete the acl
+ if ( this.getContainerID() == 0 && !this.isMetadata() ){
+ JahiaBaseACL acl = getACL ();
+ acl.delete ();
+ acl = null;
+ }
this.activeAndStagingEntryStates.clear ();
this.loadedDBValues.clear ();
Index: ContentFieldTools.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/fields/ContentFieldTools.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ContentFieldTools.java 4 Jan 2006 12:44:32 -0000 1.10
+++ ContentFieldTools.java 6 Jan 2006 14:00:59 -0000 1.11
@@ -289,7 +289,10 @@
public void purgeFieldData (ContentField theField)
throws JahiaException {
// removes ACL & ACL entries corresponding to this field
- theField.getACL ().delete ();
+ // it's a page field
+ if ( theField.getContainerID() == 0 && !theField.isMetadata() ){
+ theField.getACL ().delete ();
+ }
}
/**
Index: JahiaFieldBaseService.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/fields/JahiaFieldBaseService.java,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- JahiaFieldBaseService.java 4 Jan 2006 12:44:32 -0000 1.32
+++ JahiaFieldBaseService.java 6 Jan 2006 14:00:59 -0000 1.33
@@ -947,23 +947,27 @@
// creates ACL, if needed
if (theField.getAclID () == 0) {
- JahiaBaseACL acl = new JahiaBaseACL ();
- if (acl != null) {
- // create a new object by specifying the parent ACL ID (a
container)
- if (!acl.create (parentAclID)) {
- String message = "Could not create an ACL object for a
new field in container.";
- logger.debug (message + " -> Stop container creation!");
- throw new JahiaException ("AddContainer_Engine", message,
- JahiaException.ACL_ERROR,
JahiaException.CRITICAL_SEVERITY);
+ if ( theField.getctnid() == 0 && ! theField.getIsMetadata() ){
+ JahiaBaseACL acl = new JahiaBaseACL ();
+ if (acl != null) {
+ // create a new object by specifying the parent ACL ID
(a container)
+ if (!acl.create (parentAclID)) {
+ String message = "Could not create an ACL object for
a new field in container.";
+ logger.debug (message + " -> Stop container
creation!");
+ throw new JahiaException ("AddContainer_Engine",
message,
+ JahiaException.ACL_ERROR,
JahiaException.CRITICAL_SEVERITY);
+ } else {
+ logger.debug ("ACL [" + acl.getID () + "] has just
been created!");
+ }
} else {
- logger.debug ("ACL [" + acl.getID () + "] has just been
created!");
+ throw new JahiaException
("JahiaFieldBaseService.saveField", "Could not instanciate the JahiaBaseACL
class",
+ JahiaException.ACL_ERROR,
JahiaException.CRITICAL_SEVERITY);
}
+ // End Create ACL
+ theField.setAclID (acl.getID ());
} else {
- throw new JahiaException ("JahiaFieldBaseService.saveField",
"Could not instanciate the JahiaBaseACL class",
- JahiaException.ACL_ERROR,
JahiaException.CRITICAL_SEVERITY);
- }
- // End Create ACL
- theField.setAclID (acl.getID ());
+ theField.setAclID (parentAclID);
+ }
}
//--------- start add to search engine + fire event --------------
@@ -978,7 +982,6 @@
dataManager.createField(theField,
ServicesRegistry.getInstance ().getJahiaVersionService ()
.getSiteSaveVersion (theField.getJahiaID ()));
-
ContentField contentField =
ContentField.getField(theField.getID());
JahiaEvent objectCreatedEvent = new JahiaEvent(this, jParams,
contentField);
ServicesRegistry.getInstance ().getJahiaEventService
().fireContentObjectCreated(objectCreatedEvent);
Index: ImportHandler.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- ImportHandler.java 6 Jan 2006 13:11:08 -0000 1.58
+++ ImportHandler.java 6 Jan 2006 14:00:59 -0000 1.59
@@ -177,7 +177,7 @@
cpf.getAclID(), jParams);
cpf.setValue(jahiaPage.getID(), jParams);
ServicesRegistry.getInstance ().getJahiaFieldService ().
- saveField (((ContentPageField)
cpf).getJahiaField(elr), cpf.getACL().getParentID(), jParams);
+ saveField (((ContentPageField)
cpf).getJahiaField(elr), cpf.getACL().getID(), jParams);
}
jParams.setCurrentLocale(oldLocale);
jParams.setEntryLoadRequest(oldElr);
@@ -512,7 +512,7 @@
jahiaField.setValue(Integer.toString(jahiaPage.getID()));
jahiaField.setObject(jahiaPage);
ServicesRegistry.getInstance ().getJahiaFieldService ().
- saveField (jahiaField,
parent.getACL().getParentID(), jParams);
+ saveField (jahiaField, parent.getACL().getID(),
jParams);
object = jahiaPage.getContentPage();
WorkflowEvent theEvent = new WorkflowEvent (this, object,
jParams.getUser(), language, false);
@@ -570,7 +570,6 @@
}
}
}
-
return object;
}
@@ -779,7 +778,7 @@
JahiaFileField fField = objectDav.getJahiaFileField();
jahiaField.setObject(fField);
}
- ServicesRegistry.getInstance ().getJahiaFieldService
().saveField (jahiaField, object.getParent(null).getAclID (), jParams);
+ ServicesRegistry.getInstance ().getJahiaFieldService
().saveField (jahiaField, object.getAclID (), jParams);
}
pageID = cf.getPageID();
} else if (object instanceof ContentPage) {