tdraier     2005/12/22 17:55:03 CET

  Modified files:
    core/src/java/org/jahia/services/importexport 
                                                  ImportHandler.java 
  Log:
  fixed ranking order, added option to copy read acl only
  
  Revision  Changes    Path
  1.57      +25 -13    
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.56&r2=1.57&f=h
  
  
  
  Index: ImportHandler.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- ImportHandler.java        21 Dec 2005 13:39:29 -0000      1.56
  +++ ImportHandler.java        22 Dec 2005 16:55:03 -0000      1.57
  @@ -82,6 +82,7 @@
       protected String topAcl;
       protected ImportResult result;
       protected boolean copyUuid = false;
  +    protected boolean copyReadAccessOnly = false;
   
       private TransactionTemplate transactionTemplate = null;
   
  @@ -424,15 +425,18 @@
               JahiaContainer container = 
contentContainerFacade.getContainer(elr,true);
               if (atts.getValue(ImportExportBaseService.JAHIA_URI, 
"diff")!=null) {
                   Integer iIndex = (Integer) containerIndex.get(parent);
  -                if (iIndex == null) {
  -                    iIndex = new Integer(0);
  -                    containerIndex.put(parent, iIndex);
  -                }
  +
                   // SET
                   List l = parent.getChilds(jParams.getUser(), elr, 
jParams.getOperationMode());
                   ImportExportUtils.orderContainerList(l, jParams);
                   int i = -l.size();
  -                int rank = i + iIndex.intValue();
  +                int rank;
  +                if (iIndex == null) {
  +                    rank = 0;
  +                } else {
  +                    rank = i + iIndex.intValue();
  +                    containerIndex.put(parent, new Integer(iIndex.intValue() 
+ 1));
  +                }
                   for (Iterator iterator = l.iterator(); iterator.hasNext();) {
                       ContentContainer contentObject = (ContentContainer) 
iterator.next();
                       JahiaContainer jc = 
contentObject.getJahiaContainer(jParams, elr);
  @@ -444,7 +448,6 @@
                               saveContainerInfo (jc, parentId, parentAclID, 
jParams);
                   }
                   container.setRank(rank);
  -                containerIndex.put(parent, new Integer(iIndex.intValue() + 
1));
               }
   
               ServicesRegistry.getInstance ().getJahiaContainersService ().
  @@ -690,6 +693,7 @@
                   cc = containerList.getContentContainerList();
               }
               object = cc;
  +            containerIndex.put(cc, new Integer(0));
           } else if (isField) {
               JahiaFieldDefinition jfd = ((JahiaFieldDefinition)def);
               ContentField cf = null;
  @@ -874,13 +878,17 @@
                       permissions.setPermission (JahiaBaseACL.READ_RIGHTS, 
perm.charAt (0) == 'r' ?
                               JahiaACLEntry.ACL_YES :
                               JahiaACLEntry.ACL_NO);
  -                    permissions.setPermission (JahiaBaseACL.WRITE_RIGHTS, 
perm.charAt (1) == 'w' ?
  -                            JahiaACLEntry.ACL_YES :
  -                            JahiaACLEntry.ACL_NO);
  -                    permissions.setPermission (JahiaBaseACL.ADMIN_RIGHTS, 
perm.charAt (2) == 'a' ?
  -                            JahiaACLEntry.ACL_YES :
  -                            JahiaACLEntry.ACL_NO);
  -
  +                    if (copyReadAccessOnly) {
  +                        permissions.setPermission 
(JahiaBaseACL.WRITE_RIGHTS, JahiaACLEntry.ACL_NEUTRAL);
  +                        permissions.setPermission 
(JahiaBaseACL.ADMIN_RIGHTS, JahiaACLEntry.ACL_NEUTRAL);
  +                    } else {
  +                        permissions.setPermission 
(JahiaBaseACL.WRITE_RIGHTS, perm.charAt (1) == 'w' ?
  +                                JahiaACLEntry.ACL_YES :
  +                                JahiaACLEntry.ACL_NO);
  +                        permissions.setPermission 
(JahiaBaseACL.ADMIN_RIGHTS, perm.charAt (2) == 'a' ?
  +                                JahiaACLEntry.ACL_YES :
  +                                JahiaACLEntry.ACL_NO);
  +                    }
                       String principal = ace.substring(0, colonIndex);
   
                       String userName = principal.substring(2);
  @@ -989,6 +997,10 @@
           this.copyUuid = copyUuid;
       }
   
  +    public void setCopyReadAccessOnly(boolean copyReadAccessOnly) {
  +        this.copyReadAccessOnly = copyReadAccessOnly;
  +    }
  +
       public ContentObject getLastObject() {
           return lastObject;
       }
  

Reply via email to