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;
}