Author: tdraier
Date: Fri Sep 14 12:30:12 2007
New Revision: 18445

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18445&repname=
=3Djahia
Log:
improt export site permissions ( JAHIA-1909 ) (port 18148)

Added:
    trunk/core/src/java/org/jahia/services/importexport/SitePermissionsImpo=
rtHandler.java
      - copied unchanged from r18148, branches/JAHIA-5-0-SP-BRANCH/core/src=
/java/org/jahia/services/importexport/SitePermissionsImportHandler.java
Modified:
    trunk/core/src/java/org/jahia/services/acl/JahiaACLManagerService.java
    trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java

Modified: trunk/core/src/java/org/jahia/services/acl/JahiaACLManagerService=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/acl/JahiaACLManagerService.java&rev=3D18445&repname=3Djah=
ia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/acl/JahiaACLManagerService.java =
(original)
+++ trunk/core/src/java/org/jahia/services/acl/JahiaACLManagerService.java =
Fri Sep 14 12:30:12 2007
@@ -470,6 +470,11 @@
         }
     }
 =

+    public JahiaAclName getJahiaAclName(String objectName, int siteID) {
+        return nameManager.findOrCreateJahiaAclNameByName(objectName, site=
ID);
+    }
+
+
     /**
      * Shortcut method to test permissions on an action.
      * @param actionName the name of the action to retrieve (or create) pe=
rmission for. This

Modified: trunk/core/src/java/org/jahia/services/importexport/ImportExportB=
aseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/importexport/ImportExportBaseService.java&rev=3D18445&rep=
name=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java (original)
+++ trunk/core/src/java/org/jahia/services/importexport/ImportExportBaseSer=
vice.java Fri Sep 14 12:30:12 2007
@@ -47,13 +47,14 @@
 import org.jahia.hibernate.manager.JahiaSiteLanguageListManager;
 import org.jahia.hibernate.manager.SpringContextSingleton;
 import org.jahia.hibernate.model.JahiaAclEntry;
+import org.jahia.hibernate.model.JahiaAclName;
+import org.jahia.hibernate.model.JahiaAcl;
 import org.jahia.params.ProcessingContext;
 import org.jahia.params.valves.TokenAuthValveImpl;
 import org.jahia.registries.ServicesRegistry;
 import org.jahia.services.JahiaService;
 import org.jahia.services.workflow.WorkflowService;
 import org.jahia.services.workflow.ExternalWorkflow;
-import org.jahia.services.acl.ACLNotFoundException;
 import org.jahia.services.acl.JahiaACLEntry;
 import org.jahia.services.acl.JahiaACLException;
 import org.jahia.services.acl.JahiaBaseACL;
@@ -109,7 +110,6 @@
 import java.util.*;
 import java.util.regex.Pattern;
 import java.util.regex.Matcher;
-import java.util.prefs.Preferences;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
@@ -325,6 +325,10 @@
                 zout.putNextEntry(new ZipEntry("users.xml"));
                 exportUsers(dw, jParams.getSite());
                 dw.flush();
+
+                zout.putNextEntry(new ZipEntry("sitePermissions.xml"));
+                exportSitePermissions(dw, jParams.getSite());
+                dw.flush();
             }
 =

             for (Iterator iterator =3D files.iterator(); iterator.hasNext(=
);) {
@@ -1556,6 +1560,8 @@
                 }
             } else if (name.equals("categories.xml")) {
                 catProps =3D importCategoriesAndGetUuidProps(zis, categori=
esImportHandler);
+            } else if (name.equals("sitePermissions.xml")) {
+                importSitePermissions(jParams, zis);
             }
             zis.closeEntry();
         }
@@ -2081,7 +2087,51 @@
         ch.endElement(JAHIA_URI, "users", "jahia:users");
     }
 =

-    private void exportUsersRoles(ContentHandler ch, JahiaSite site) throw=
s JahiaException, SAXException {
+    private void exportSitePermissions(ContentHandler ch, JahiaSite site) =
throws JahiaException, SAXException {
+        ch.startDocument();
+        ch.startPrefixMapping("jahia", JAHIA_URI);
+        ch.endPrefixMapping("jahia");
+        AttributesImpl attr =3D new AttributesImpl();
+
+        attr.addAttribute(NS_URI, "jahia", "xmlns:jahia", "CDATA", JAHIA_U=
RI);
+
+        ch.startElement(JAHIA_URI, "sitePermissions", "jahia:sitePermissio=
ns", attr);
+
+        String prefix =3D "org.jahia.actions.sites." + site.getID();
+        List list =3D ServicesRegistry.getInstance().getJahiaACLManagerSer=
vice().getAclNamesStartingWith(prefix);
+        for (Iterator iterator =3D list.iterator(); iterator.hasNext();) {
+            attr =3D new AttributesImpl();
+            JahiaAclName jahiaAclName =3D (JahiaAclName) iterator.next();
+
+            String name =3D jahiaAclName.getAclName().substring(prefix.len=
gth()+1);
+            attr.addAttribute(JAHIA_URI, "name", "jahia:name", "CDATA", na=
me);
+
+            String perms =3D "";
+            JahiaAcl acl =3D jahiaAclName.getAcl();
+            Map entries =3D acl.getEntries();
+            for (Iterator iterator1 =3D entries.values().iterator(); itera=
tor1.hasNext();) {
+                JahiaAclEntry ace =3D (JahiaAclEntry) iterator1.next();
+                if (ace.getPermission(JahiaBaseACL.READ_RIGHTS) =3D=3D Jah=
iaAclEntry.ACL_YES) {
+                    if (ace.getComp_id().getType().intValue() =3D=3D 1) {
+                        JahiaUser user =3D userManagerService.lookupUser(a=
ce.getComp_id().getTarget());
+                        perms +=3D "|u:" + user.getUsername();
+                    } else{        =

+                        JahiaGroup group =3D groupManagerService.lookupGro=
up(ace.getComp_id().getTarget());
+                        perms +=3D "|g:" + group.getGroupname();
+                    }
+                }
+            }
+            if (perms.length() > 0) {
+                perms =3D perms.substring(1);
+                attr.addAttribute(JAHIA_URI, "acl", "jahia:acl", "CDATA", =
perms);
+            }
+
+            ch.startElement(JAHIA_URI, "sitePermission", "jahia:sitePermis=
sion", attr);
+            ch.endElement(JAHIA_URI, "sitePermission", "jahia:sitePermissi=
on");
+        }
+
+        ch.endElement(JAHIA_URI, "sitePermissions", "jahia:sitePermissions=
");
+        ch.endDocument();        =

     }
 =

     private void importFilesAcl(ProcessingContext jParams, InputStream is)=
 {
@@ -2102,6 +2152,10 @@
         return  importHandler.getUuidProps();
     }
 =

+    public void importSitePermissions(ProcessingContext jParams, InputStre=
am is) {
+        handleImport(is, new SitePermissionsImportHandler(jParams));
+    }
+
     private void handleImport(InputStream is, DefaultHandler h) {
         try {
             SAXParserFactory factory;

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to