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) {
  

Reply via email to