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