Author: tdraier
Date: Mon Sep 10 19:15:31 2007
New Revision: 18414

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18414&repname=
=3Djahia
Log:
import/export serverPermissions (JAHIA-1909)

Added:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/PermissionsImportHandler.java
      - copied, changed from r18406, branches/JAHIA-5-0-SP-BRANCH/core/src/=
java/org/jahia/services/importexport/SitePermissionsImportHandler.java
Modified:
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/Manage=
Sites.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java
    branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/administration/i=
mport_choose.jsp

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/=
ManageSites.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/admin/sites/ManageSites.java&rev=3D18414&re=
pname=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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/Manage=
Sites.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/admin/sites/Manage=
Sites.java Mon Sep 10 19:15:31 2007
@@ -2096,13 +2096,9 @@
                         i.delete();
 =

                     } else if (n.equals("classes.jar")) {
-//                        JahiaArchiveFileHandler h =3D new JahiaArchiveFi=
leHandler(i.getPath());
-//                        try {
-//                            h.unzip(Jahia.getSettings().getClassDiskPath=
(), false);
-//                        } catch (JahiaException e) {
-//                            logger.error("Cannot unzip classes",e);
-//                        }
                         i.delete();
+                    } else if (n.equals("serverPermissions.xml")) {
+                        imports.put(i,n);
                     } else if (n.equals("site.properties") || ((n.startsWi=
th("export_") && n.endsWith(".xml")))) {
                         // this is a single site import, stop everything a=
nd import
                         i.delete();
@@ -2145,36 +2141,41 @@
         Map importInfos =3D new HashMap();
         importInfos.put("importFile", i);
         importInfos.put("importFileName", filename);
-        ZipEntry z;
-        ZipInputStream zis2 =3D new ZipInputStream(new FileInputStream(i));
-        while ( (z =3D zis2.getNextEntry())!=3Dnull) {
-            if ("site.properties".equals(z.getName())) {
-                Properties p =3D new Properties();
-                p.load(zis2);
-                zis2.closeEntry();
-                importInfos.putAll(p);
+        if (filename.endsWith(".xml")) {
+            importInfos.put("type", "xml");
+        } else {
+            importInfos.put("type", "zip");
+            ZipEntry z;
+            ZipInputStream zis2 =3D new ZipInputStream(new FileInputStream=
(i));
+            while ( (z =3D zis2.getNextEntry())!=3Dnull) {
+                if ("site.properties".equals(z.getName())) {
+                    Properties p =3D new Properties();
+                    p.load(zis2);
+                    zis2.closeEntry();
+                    importInfos.putAll(p);
+                    importInfos.put("selected", Boolean.TRUE);
+                    importInfos.put("templates","");
+                } else if ("templates.jar".equals(z.getName())) {
+                    importInfos.put("templatesAvailable", Boolean.TRUE);
+                }
+            }
+            if (!importInfos.containsKey("sitekey")) {
+                importInfos.put("sitekey","");
+                importInfos.put("siteservername","");
+                importInfos.put("sitetitle","");
+                importInfos.put("description","");
+                importInfos.put("mixLanguage","false");
                 importInfos.put("selected", Boolean.TRUE);
                 importInfos.put("templates","");
-            } else if ("templates.jar".equals(z.getName())) {
-                importInfos.put("templatesAvailable", Boolean.TRUE);
-            }
-        }
-        if (!importInfos.containsKey("sitekey")) {
-            importInfos.put("sitekey","");
-            importInfos.put("siteservername","");
-            importInfos.put("sitetitle","");
-            importInfos.put("description","");
-            importInfos.put("mixLanguage","false");
-            importInfos.put("selected", Boolean.TRUE);
-            importInfos.put("templates","");
-            importInfos.put("siteKeyExists", Boolean.TRUE);
-            importInfos.put("siteServerNameExists", Boolean.TRUE);
-        } else {
-            try {
-                importInfos.put("siteKeyExists", new Boolean(ServicesRegis=
try.getInstance().getJahiaSitesService().getSiteByKey((String) importInfos.=
get("sitekey")) !=3D null));
-                importInfos.put("siteServerNameExists", new Boolean(Servic=
esRegistry.getInstance().getJahiaSitesService().getSite((String) importInfo=
s.get("siteservername")) !=3D null));
-            } catch (JahiaException e) {
-                e.printStackTrace();  //To change body of catch statement =
use File | Settings | File Templates.
+                importInfos.put("siteKeyExists", Boolean.TRUE);
+                importInfos.put("siteServerNameExists", Boolean.TRUE);
+            } else {
+                try {
+                    importInfos.put("siteKeyExists", new Boolean(ServicesR=
egistry.getInstance().getJahiaSitesService().getSiteByKey((String) importIn=
fos.get("sitekey")) !=3D null));
+                    importInfos.put("siteServerNameExists", new Boolean(Se=
rvicesRegistry.getInstance().getJahiaSitesService().getSite((String) import=
Infos.get("siteservername")) !=3D null));
+                } catch (JahiaException e) {
+                    e.printStackTrace();  //To change body of catch statem=
ent use File | Settings | File Templates.
+                }
             }
         }
         return importInfos;
@@ -2196,17 +2197,21 @@
 =

             if (request.getParameter(file.getName()+"selected") !=3D null)=
 {
                 try {
-                    infos.put("siteKeyExists", new Boolean(ServicesRegistr=
y.getInstance().getJahiaSitesService().getSiteByKey((String) infos.get("sit=
ekey")) !=3D null));
-                    infos.put("siteServerNameExists", new Boolean(Services=
Registry.getInstance().getJahiaSitesService().getSite((String) infos.get("s=
iteservername")) !=3D null));
+                    if (infos.get("importFileName").equals("serverPermissi=
ons.xml")) {
 =

-                    if ("".equals(infos.get("sitekey")) || "".equals(infos=
.get("siteservername")) || "".equals(infos.get("sitetitle"))) {
-                        // todo display an error message
-                        stillBad =3D true;
-                    }
+                    } else {
+                        infos.put("siteKeyExists", new Boolean(ServicesReg=
istry.getInstance().getJahiaSitesService().getSiteByKey((String) infos.get(=
"sitekey")) !=3D null));
+                        infos.put("siteServerNameExists", new Boolean(Serv=
icesRegistry.getInstance().getJahiaSitesService().getSite((String) infos.ge=
t("siteservername")) !=3D null));
 =

-                    if (Boolean.TRUE.equals(infos.get("siteKeyExists")) ||
-                            Boolean.TRUE.equals(infos.get("siteServerNameE=
xists"))) {
-                        stillBad =3D true;
+                        if ("".equals(infos.get("sitekey")) || "".equals(i=
nfos.get("siteservername")) || "".equals(infos.get("sitetitle"))) {
+                            // todo display an error message
+                            stillBad =3D true;
+                        }
+
+                        if (Boolean.TRUE.equals(infos.get("siteKeyExists")=
) ||
+                                Boolean.TRUE.equals(infos.get("siteServerN=
ameExists"))) {
+                            stillBad =3D true;
+                        }
                     }
                 } catch (JahiaException e) {
                     e.printStackTrace();  //To change body of catch statem=
ent use File | Settings | File Templates.
@@ -2232,13 +2237,18 @@
                 File file =3D (File) iterator.next();
                 if (request.getParameter(file.getName()+"selected") !=3D n=
ull) {
                     Map infos =3D (Map) importsInfos.get(file);
-                    String tpl =3D (String) infos.get("templates");
-                    if ("".equals(tpl)) tpl =3D null;
-                    try {
-                        createSite(request, jParams.getUser().getUsername(=
), (String) infos.get("sitetitle"),
-                                (String) infos.get("siteservername"), (Str=
ing) infos.get("sitekey"), "", jParams.getLocale(), null, null, null, tpl, =
file, (String) infos.get("importFileName"),true);
-                    } catch (Throwable e) {
-                        logger.error("Cannot create site " + infos.get("si=
tetitle"), e);
+                    if (infos.get("importFileName").equals("serverPermissi=
ons.xml")) {
+                        ImportExportBaseService.getInstance().importServer=
Permissions(jParams, new FileInputStream(file));
+                    } else {
+                        // site import
+                        String tpl =3D (String) infos.get("templates");
+                        if ("".equals(tpl)) tpl =3D null;
+                        try {
+                            createSite(request, jParams.getUser().getUsern=
ame(), (String) infos.get("sitetitle"),
+                                    (String) infos.get("siteservername"), =
(String) infos.get("sitekey"), "", jParams.getLocale(), null, null, null, t=
pl, file, (String) infos.get("importFileName"),true);
+                        } catch (Throwable e) {
+                            logger.error("Cannot create site " + infos.get=
("sitetitle"), e);
+                        }
                     }
                 }
             }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/imp=
ortexport/ImportExportBaseService.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/ImportExportBaseServi=
ce.java&rev=3D18414&repname=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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/ImportExportBaseService.java Mon Sep 10 19:15:31 2007
@@ -226,6 +226,11 @@
         processingContext.setSiteID(s.getID());
         processingContext.setSiteKey(s.getSiteKey());
 =

+        anEntry =3D new ZipEntry("serverPermissions.xml");
+        zout.putNextEntry(anEntry);
+        DataWriter dw =3D new DataWriter(new OutputStreamWriter(zout, "UTF=
-8"));
+        exportServerPermissions(dw);
+
         zout.finish();
     }
 =

@@ -2086,7 +2091,15 @@
         ch.endElement(JAHIA_URI, "users", "jahia:users");
     }
 =

+    private void exportServerPermissions(ContentHandler ch) throws JahiaEx=
ception, SAXException {
+        exportPermissions(ch, "org.jahia.actions.server", "serverPermissio=
n");
+    }
+
     private void exportSitePermissions(ContentHandler ch, JahiaSite site) =
throws JahiaException, SAXException {
+        exportPermissions(ch, "org.jahia.actions.sites." + site.getID(), "=
sitePermission");
+    }
+
+    private void exportPermissions(ContentHandler ch, String prefix, Strin=
g nodeName) throws SAXException {
         ch.startDocument();
         ch.startPrefixMapping("jahia", JAHIA_URI);
         ch.endPrefixMapping("jahia");
@@ -2094,9 +2107,8 @@
 =

         attr.addAttribute(NS_URI, "jahia", "xmlns:jahia", "CDATA", JAHIA_U=
RI);
 =

-        ch.startElement(JAHIA_URI, "sitePermissions", "jahia:sitePermissio=
ns", attr);
+        ch.startElement(JAHIA_URI, nodeName+"s", "jahia:"+nodeName+"s", at=
tr);
 =

-        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();
@@ -2114,7 +2126,7 @@
                     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{        =

+                    } else{
                         JahiaGroup group =3D groupManagerService.lookupGro=
up(ace.getComp_id().getTarget());
                         perms +=3D "|g:" + group.getGroupname();
                     }
@@ -2125,12 +2137,11 @@
                 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.startElement(JAHIA_URI, nodeName, "jahia:"+ nodeName, attr);
+            ch.endElement(JAHIA_URI, nodeName, "jahia:"+ nodeName);
         }
-
-        ch.endElement(JAHIA_URI, "sitePermissions", "jahia:sitePermissions=
");
-        ch.endDocument();        =

+        ch.endElement(JAHIA_URI, nodeName+"s", "jahia:"+nodeName+"s");
+        ch.endDocument();
     }
 =

     private void importFilesAcl(ProcessingContext jParams, InputStream is)=
 {
@@ -2151,8 +2162,12 @@
         return  importHandler.getUuidProps();
     }
 =

+    public void importServerPermissions(ProcessingContext jParams, InputSt=
ream is) {
+        handleImport(is, new PermissionsImportHandler("org.jahia.actions.s=
erver", "serverPermission", 0));
+    }
+
     public void importSitePermissions(ProcessingContext jParams, InputStre=
am is) {
-        handleImport(is, new SitePermissionsImportHandler(jParams));
+        handleImport(is, new PermissionsImportHandler("org.jahia.actions.s=
ites." + jParams.getSite().getID(), "sitePermission", jParams.getSite().get=
ID()));
     }
 =

     private void handleImport(InputStream is, DefaultHandler h) {

Copied: branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/impor=
texport/PermissionsImportHandler.java (from r18406, branches/JAHIA-5-0-SP-B=
RANCH/core/src/java/org/jahia/services/importexport/SitePermissionsImportHa=
ndler.java)
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/java/org/jahia/services/importexport/PermissionsImportHand=
ler.java&rev=3D18414&repname=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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/SitePermissionsImportHandler.java (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/java/org/jahia/services/importexp=
ort/PermissionsImportHandler.java Mon Sep 10 19:15:31 2007
@@ -42,20 +42,24 @@
  * Time: 17:57:36
  * To change this template use File | Settings | File Templates.
  */
-public class SitePermissionsImportHandler extends DefaultHandler {
+public class PermissionsImportHandler extends DefaultHandler {
     private static Logger logger =3D Logger.getLogger(UsersImportHandler.c=
lass);
     private JahiaUserManagerService u;
     private JahiaGroupManagerService g;
     private JahiaSiteUserManagerService su;
     private JahiaSiteGroupManagerService sg;
-    private JahiaSite site;
+    private int siteId;
+    private String prefix;
     private List uuidProps =3D new ArrayList();
 =

     private JahiaGroup currentGroup =3D null;
     private boolean member =3D false;
+    private String nodeName;
 =

-    public SitePermissionsImportHandler(ProcessingContext jParams) {
-        site =3D jParams.getSite();
+    public PermissionsImportHandler(String prefix, String nodeName, int si=
teId) {
+        this.prefix =3D prefix;
+        this.nodeName =3D nodeName;
+        this.siteId =3D siteId;
         u =3D ServicesRegistry.getInstance().getJahiaUserManagerService();
         g =3D ServicesRegistry.getInstance().getJahiaGroupManagerService();
         su =3D ServicesRegistry.getInstance().getJahiaSiteUserManagerServi=
ce();
@@ -63,12 +67,11 @@
     }
 =

     public void startElement(String uri, String localName, String qName, A=
ttributes attributes) throws SAXException {
-        if (localName.equals("sitePermission")) {
+        if (localName.equals(nodeName)) {
             String name =3D attributes.getValue(ImportExportBaseService.JA=
HIA_URI, "name");
             String userlist =3D attributes.getValue(ImportExportBaseServic=
e.JAHIA_URI, "acl");
 =

-            String prefix =3D "org.jahia.actions.sites." + site.getID();
-            JahiaAclName aclName =3D ServicesRegistry.getInstance().getJah=
iaACLManagerService().getJahiaAclName(prefix+"."+name, site.getID());
+            JahiaAclName aclName =3D ServicesRegistry.getInstance().getJah=
iaACLManagerService().getJahiaAclName(prefix+"."+name, siteId);
             JahiaAcl jAcl =3D aclName.getAcl();
             JahiaAclEntry permissions =3D new JahiaAclEntry (1,0); // gran=
t rwa , no tristate
 =

@@ -79,10 +82,10 @@
                     String username =3D principal.substring(2);
                     try {
                         if (principal.charAt(0) =3D=3D 'u') {
-                            JahiaUser user =3D ServicesRegistry.getInstanc=
e().getJahiaSiteUserManagerService().getMember(site.getID(), username);
+                            JahiaUser user =3D ServicesRegistry.getInstanc=
e().getJahiaSiteUserManagerService().getMember(siteId, username);
                             jAcl.setUserEntry(user, permissions);
                         } else {
-                            JahiaGroup group =3D ServicesRegistry.getInsta=
nce().getJahiaGroupManagerService().lookupGroup(site.getID(), username);
+                            JahiaGroup group =3D ServicesRegistry.getInsta=
nce().getJahiaGroupManagerService().lookupGroup(siteId, username);
                             jAcl.setGroupEntry(group, permissions);
                         }
                     } catch (JahiaException e) {
@@ -91,9 +94,14 @@
                 }
             }
             aclName.setAcl(jAcl);
+            ServicesRegistry.getInstance().getJahiaACLManagerService().upd=
ateCache(jAcl);
         }
     }
 =

+    public void endDocument() throws SAXException {
+        ServicesRegistry.getInstance().getJahiaACLManagerService().flushCa=
che();
+    }
+
     public void endElement(String uri, String localName, String qName) thr=
ows SAXException {
         if (member) {
             member =3D false;
@@ -119,10 +127,10 @@
                 if (!l.isEmpty()) {
                     int id =3D ((ContentPage) l.iterator().next()).getID();
                     if (s[1].equals("user_homepage")) {
-                        JahiaUser user =3D u.lookupUser(site.getID(), s[0]=
);
+                        JahiaUser user =3D u.lookupUser(siteId, s[0]);
                         user.setHomepageID(id);
                     } else if (s[1].equals("group_homepage")) {
-                        JahiaGroup group =3D g.lookupGroup(site.getID(), s=
[0]);
+                        JahiaGroup group =3D g.lookupGroup(siteId, s[0]);
                         group.setHomepageID(id);
                     }
                 }

Modified: branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/administra=
tion/import_choose.jsp
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-5-0-SP=
-BRANCH/core/src/webapp/jsp/jahia/administration/import_choose.jsp&rev=3D18=
414&repname=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
--- branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/administration/i=
mport_choose.jsp (original)
+++ branches/JAHIA-5-0-SP-BRANCH/core/src/webapp/jsp/jahia/administration/i=
mport_choose.jsp Mon Sep 10 19:15:31 2007
@@ -64,6 +64,8 @@
                       for (Iterator iterator =3D importsInfos.keySet().ite=
rator(); iterator.hasNext();) {
                           File file =3D (File) iterator.next();
                           Map infos =3D (Map) importsInfos.get(file);
+                          String filename =3D (String) infos.get("importFi=
leName");
+                          String fileType =3D (String) infos.get("type");
                           String siteKey =3D file.getName();
                           String lineClass =3D "oddLine";
                           if (lineCounter % 2 =3D=3D 0) {
@@ -73,6 +75,8 @@
                             <tr class=3D"<%=3DlineClass%>">
                                 <td><input type=3D"checkbox" name=3D"<%=3D=
file.getName()%>selected" value=3D"on" <% if (infos.get("selected")!=3Dnull=
) {%>checked<% } %>></td>
                                 <td>
+<% if ("zip".equals(fileType)) { %>
+
             <table border=3D"0" cellpadding=3D"0" width=3D"100%">
             <tr>
                 <td>
@@ -123,6 +127,9 @@
                 </td>
                 </tr>
             </table>
+        <% } else { %>
+               <%=3Dfilename%>                     =

+        <% } %>
                                 </td>
                             </tr>
                             <%

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

Reply via email to