tdraier     2005/10/25 13:22:58 CEST

  Modified files:
    core/src/java/org/jahia/engines/importexport 
                                                 ManageImportExport.java 
    core/src/java/org/jahia/services/importexport 
                                                  ContentPickerListener.java 
                                                  ImportExportBaseService.java 
                                                  ImportHandler.java 
  Log:
  import/export acl breaks
  fixed acl cache issue
  allow application/xml in import
  import real creator metadata
  
  Revision  Changes    Path
  1.18      +1 -1      
jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java.diff?r1=1.17&r2=1.18&f=h
  1.16      +7 -6      
jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java.diff?r1=1.15&r2=1.16&f=h
  1.38      +4 -2      
jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java.diff?r1=1.37&r2=1.38&f=h
  1.33      +31 -27    
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.32&r2=1.33&f=h
  
  
  
  Index: ManageImportExport.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageImportExport.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- ManageImportExport.java   6 Oct 2005 17:13:15 -0000       1.17
  +++ ManageImportExport.java   25 Oct 2005 11:22:57 -0000      1.18
  @@ -169,7 +169,7 @@
                       String contentType = fupload.getFileContentType(name);
                       if (contentType.indexOf("zip")>0) {
                           
ServicesRegistry.getInstance().getImportExportService().importFile(target, 
jParams, new FileInputStream(fupload.getFile(name)));
  -                    } else if ("text/xml".equals(contentType)) {
  +                    } else if ("text/xml".equals(contentType) || 
"application/xml".equals(contentType)) {
                           
ServicesRegistry.getInstance().getImportExportService().importDocument(target, 
jParams.getLocale().toString(), jParams, new 
FileInputStream(fupload.getFile(name)), false);
                       }
                   }
  
  
  
  Index: ContentPickerListener.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ContentPickerListener.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- ContentPickerListener.java        12 Oct 2005 09:02:59 -0000      1.15
  +++ ContentPickerListener.java        25 Oct 2005 11:22:58 -0000      1.16
  @@ -11,6 +11,8 @@
   import org.jahia.services.sites.JahiaSite;
   import org.jahia.services.containers.ContentContainer;
   import org.jahia.services.usermanager.JahiaUser;
  +import org.jahia.services.usermanager.JahiaGroup;
  +import org.jahia.services.usermanager.JahiaGroupManagerService;
   import org.jahia.content.ContentObject;
   import org.jahia.registries.ServicesRegistry;
   import org.jahia.params.ProcessingContext;
  @@ -135,12 +137,11 @@
               container = container.getParent(null);
           }
   
  -        String creator = null;
  -        if (container != null) {
  -            creator = 
((ContentSmallTextSharedLangField)container.getMetadata("creator")).getValue(jParams,
 EntryLoadRequest.STAGED);
  -        }
  -        if (creator != null) {
  -            
jParams.setUser(ServicesRegistry.getInstance().getJahiaSiteUserManagerService().getMember(site.getID(),
 creator));
  +        JahiaGroup admins = 
ServicesRegistry.getInstance().getJahiaGroupManagerService().lookupGroup(site.getID(),
 JahiaGroupManagerService.ADMINISTRATORS_GROUPNAME);
  +        JahiaUser admin = (JahiaUser) admins.members().nextElement();
  +
  +        if (admin != null) {
  +            jParams.setUser(admin);
           } else {
               jParams.setUser(oldUser);
           }
  
  
  
  Index: ImportExportBaseService.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportExportBaseService.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- ImportExportBaseService.java      21 Oct 2005 10:19:39 -0000      1.37
  +++ ImportExportBaseService.java      25 Oct 2005 11:22:58 -0000      1.38
  @@ -374,8 +374,7 @@
                   if (changedStatus != null) {
                       attr.addAttribute(JAHIA_URI, "diff", "jahia:diff", 
"CDATA", changedStatus);
                   }
  -
  -                JahiaBaseACL acl = object.getACL();
  +                JahiaBaseACL acl = new JahiaBaseACL (object.getAclID());
                   String attrName = "acl";
   
                   exportAcl(acl, "acl", attr, top);
  @@ -495,6 +494,9 @@
                   }
               }
           }
  +        if (acl.getInheritance() == 1) {
  +            perms+="|break";
  +        }
           if (perms.length() > 0) {
               perms = perms.substring(1);
               attr.addAttribute(JAHIA_URI, attrName, "jahia:"+attrName, 
"CDATA", perms);
  
  
  
  Index: ImportHandler.java
  ===================================================================
  RCS file: 
/home/cvs/repository/jahia/core/src/java/org/jahia/services/importexport/ImportHandler.java,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- ImportHandler.java        24 Oct 2005 12:42:26 -0000      1.32
  +++ ImportHandler.java        25 Oct 2005 11:22:58 -0000      1.33
  @@ -692,34 +692,40 @@
   
       private void fillAcl(JahiaBaseACL jAcl, String acl) {
           StringTokenizer st = new StringTokenizer(acl, "|");
  -        while (st.hasMoreTokens())  {
  -            String ace = st.nextToken();
  -            int colonIndex = ace.lastIndexOf(":");
  -            String perm = ace.substring(colonIndex+1);
  -
  -            JahiaAclEntry permissions = new JahiaAclEntry ();
  -            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);
  -
  -            String principal = ace.substring(0, colonIndex);
  -            try {
  -                if (principal.charAt(0) == 'u') {
  -                    JahiaUser user = 
ServicesRegistry.getInstance().getJahiaUserManagerService().lookupUser(principal.substring(2));
  -                    jAcl.setUserEntry (user, permissions);
  +        try {
  +            jAcl.removeAllGroupEntries();
  +            jAcl.removeAllUserEntries();
  +            while (st.hasMoreTokens())  {
  +                String ace = st.nextToken();
  +                if (ace.equals("break")) {
  +                    jAcl.setInheritance(1);
                   } else {
  -                    JahiaGroup group = 
ServicesRegistry.getInstance().getJahiaGroupManagerService().lookupGroup(principal.substring(2));
  -                    jAcl.setGroupEntry (group, permissions);
  +                    int colonIndex = ace.lastIndexOf(":");
  +                    String perm = ace.substring(colonIndex+1);
  +
  +                    JahiaAclEntry permissions = new JahiaAclEntry ();
  +                    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);
  +
  +                    String principal = ace.substring(0, colonIndex);
  +                    if (principal.charAt(0) == 'u') {
  +                        JahiaUser user = 
ServicesRegistry.getInstance().getJahiaUserManagerService().lookupUser(principal.substring(2));
  +                        jAcl.setUserEntry (user, permissions);
  +                    } else {
  +                        JahiaGroup group = 
ServicesRegistry.getInstance().getJahiaGroupManagerService().lookupGroup(principal.substring(2));
  +                        jAcl.setGroupEntry (group, permissions);
  +                    }
                   }
  -            } catch (JahiaACLException jae) {
  -                logger.error ("Cannot set user or group ACL entry !!", jae);
               }
  +        } catch (JahiaACLException jae) {
  +            logger.error ("Cannot set user or group ACL entry !!", jae);
           }
       }
   
  @@ -753,8 +759,6 @@
                       value = attr.getValue(ImportExportService.JCR_URI, 
"created");
                   } else if ("lastModificationDate".equals(metadataName)) {
                       value = attr.getValue(ImportExportService.JCR_URI, 
"lastModified");
  -                } else if ("creator".equals(metadataName)) {
  -                    value = jParams.getUser().getUsername();
                   } else {
                       value = attr.getValue(ImportExportService.JAHIA_URI, 
metadataName);
                   }
  

Reply via email to