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