📄 jahiasitetools.java
字号:
//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .//////// JahiaSite//// NK 11.07.2001////package org.jahia.services.sites;import java.io.*;import java.text.*;import java.util.*;import org.jahia.utils.JahiaConsole;import org.jahia.utils.JahiaTools;import org.jahia.params.ParamBean;import org.jahia.data.applications.*;import org.jahia.data.fields.*;import org.jahia.data.containers.*;import org.jahia.data.JahiaEditableContent;import org.jahia.registries.ServicesRegistry;import org.jahia.registries.JahiaFieldDefinitionsRegistry;import org.jahia.registries.JahiaContainerDefinitionsRegistry;import org.jahia.exceptions.JahiaException;import org.jahia.services.usermanager.JahiaUserManagerService;import org.jahia.services.usermanager.JahiaGroupManagerService;import org.jahia.services.usermanager.JahiaSiteUserManagerService;import org.jahia.services.usermanager.JahiaSiteGroupManagerService;import org.jahia.services.usermanager.JahiaGroup;import org.jahia.services.usermanager.JahiaUser;import org.jahia.services.usermanager.JahiaGroup;import org.jahia.services.usermanager.GroupsTools;import org.jahia.services.usermanager.UserManagerProviderBean;import org.jahia.services.pages.JahiaPage;import org.jahia.services.pages.JahiaPageDefinition;import org.jahia.services.pages.JahiaPageService;import org.jahia.services.pages.JahiaPageTemplateService;import org.jahia.services.acl.JahiaBaseACL;import org.jahia.services.acl.JahiaACLException;import org.jahia.services.templates_deployer.*;import org.jahia.services.webapps_deployer.*;import org.jahia.services.applications.*;import org.jahia.services.shares.*;import org.jahia.services.filemanager.*;import org.jahia.services.containers.*;import org.jahia.services.fields.*;import org.jahia.services.deamons.filewatcher.templateobserver.*;import org.jahia.services.deamons.filewatcher.webappobserver.*;/** * Class JahiaSiteTools.<br> * * * @author Khue ng * @version 1.0 */public final class JahiaSiteTools { private static final String CLASS_NAME = "JahiaSiteTools"; //------------------------------------------------------------------------- /** * Create a new membership for a user * * @param JahiaUser user, the user to add as member * @param JahiaSite site, the site * @author NK */ public static boolean addMember (JahiaUser user, JahiaSite site) throws JahiaException { if ( site == null || user == null ){ return false; } JahiaSiteUserManagerService jsums = ServicesRegistry.getInstance() .getJahiaSiteUserManagerService(); if ( jsums == null ){ return false; } return jsums.addMember(site.getID(),user); } //------------------------------------------------------------------------- /** * Add a group membership on this site ( in a group sharing context ) * * @param JahiaGroup grp * @author NK */ public static boolean addGroup (JahiaGroup grp, JahiaSite site) throws JahiaException { if ( site == null || grp == null ){ return false; } JahiaSiteGroupManagerService jsgms = ServicesRegistry.getInstance() .getJahiaSiteGroupManagerService(); if ( jsgms == null ){ return false; } return jsgms.addGroup(site.getID(),grp); } //------------------------------------------------------------------------- /** * return the admin group of this site * * @param JahiaSite the site * @author NK */ public static JahiaGroup getAdminGroup (JahiaSite site) throws JahiaException { if ( site == null ){ return null; } JahiaGroupManagerService jgms = ServicesRegistry.getInstance() .getJahiaGroupManagerService(); if ( jgms == null ){ return null; } return jgms.getAdministratorGroup(site.getID()); } //------------------------------------------------------------------------- /** * Create the template directory for a gived site * * @param JahiaSite the site * @auhtor NK */ public static boolean createTemplateDir(JahiaSite site){ if ( site == null ){ return false; } JahiaTemplatesDeployerService jtds = ServicesRegistry.getInstance() .getJahiaTemplatesDeployerService(); if ( jtds == null ) { return false; } // get the root folder for all templates String jahiaTemplatesRootPath = jtds.getTemplateRootPath(); if ( jahiaTemplatesRootPath == null ){ return false; } // compose the full template path for this site StringBuffer buff = new StringBuffer(jahiaTemplatesRootPath); buff.append(File.separator); buff.append(site.getSiteKey()); JahiaConsole.println(CLASS_NAME," start creating the template path " + buff.toString()); // create the folder File f = new File(buff.toString()); if ( !f.isDirectory() ){ return f.mkdirs(); } else { return true; } } //-------------------------------------------------------------------------- /** * Return the full path to a site's template root folder * * @param JahiaSite site * @return String * @auhtor NK */ public static String getSiteTemplateFolder(JahiaSite site) throws JahiaException { if ( site == null ){ return null; } String templateRootPath = ServicesRegistry.getInstance() .getJahiaTemplatesDeployerService() .getTemplateRootPath(); String templateContext = ServicesRegistry.getInstance() .getJahiaTemplatesDeployerService() .getTemplatesContext(); if ( templateRootPath == null || templateContext == null ) { return null; } String path = templateRootPath + File.separator + site.getSiteKey(); return path; } //------------------------------------------------------------------------- /** * Purge site's templates and all containers and fields definitions * * @param (JahiaUser) the user to check right * @param (JahiaSite) the site * @return boolean false on error * @author NK */ public static boolean deleteTemplates(JahiaUser user, JahiaSite site) throws JahiaException { if ( site == null || user == null ){ return false; } /* if ( !checkAdminAccess(user) ){ return false; } */ JahiaGroup adminGrp = getAdminGroup(site); if ( adminGrp == null || !adminGrp.isMember(user) ){ return false; } JahiaTemplatesDeployerService tds = ServicesRegistry .getInstance() .getJahiaTemplatesDeployerService(); // purge new templates folder if ( tds == null ){ return false; } StringBuffer buff = null; File f = null; String path = tds.getNewTemplatesPath(); if ( path != null ){ buff = new StringBuffer(path); buff.append(File.separator); buff.append(site.getSiteKey()); f = new File(buff.toString()); JahiaConsole.println(CLASS_NAME,"delete site new templates folder " + f.getAbsolutePath()); JahiaTools.deleteFile(f); } // purge site's templates folder path = tds.getTemplateRootPath(); if ( path != null ){ buff = new StringBuffer(path); buff.append(File.separator); buff.append(site.getSiteKey()); f = new File(buff.toString()); JahiaConsole.println(CLASS_NAME,"delete site templates folder " + f.getAbsolutePath()); JahiaTools.deleteFile(f); } // purge templates definitions JahiaPageTemplateService pts = ServicesRegistry.getInstance() .getJahiaPageTemplateService(); if ( pts != null ){ Enumeration enum = pts.getPageTemplates (site.getID(), false); while (enum.hasMoreElements()) { JahiaPageDefinition template = (JahiaPageDefinition)enum.nextElement(); JahiaConsole.println(CLASS_NAME,"delete site templates definition " + template.getName()); // purge field sub def for this template JahiaFieldDefinitionsDB fDefDB = new JahiaFieldDefinitionsDB(); fDefDB.db_delete_field_sub_definition(template.getID()); pts.deletePageTemplate(template.getID()); } } // purge site's containers definition JahiaContainersService cServ = ServicesRegistry.getInstance().getJahiaContainersService(); Vector ids = cServ.getAllContainerDefinitionIDs(); for ( int i=0; i < ids.size(); i++) { int theID = ((Integer)ids.elementAt(i)).intValue(); JahiaContainerDefinition cDef = cServ.loadContainerDefinition(theID); if ( cDef.getJahiaID()==site.getID() ){ JahiaConsole.println(CLASS_NAME,"delete site cotnainer def " + cDef.getID()); // purge container sub def for this template JahiaContainerDefinitionsDB cDefDB = new JahiaContainerDefinitionsDB(); JahiaContainerStructuresDB c_struct = new JahiaContainerStructuresDB(); Hashtable hash = cDef.getSubDefs(); Enumeration enum = hash.elements(); while ( enum.hasMoreElements() ){ JahiaContainerSubDefinition subDef = (JahiaContainerSubDefinition)enum.nextElement(); c_struct.db_delete_container_structure(subDef.getID()); } cDefDB.db_delete_container_sub_definition(cDef.getID()); cServ.deleteContainerDefinition(cDef.getID()); } } // purge site's fields definition JahiaFieldService fServ = ServicesRegistry.getInstance().getJahiaFieldService(); ids = fServ.getAllFieldDefinitionIDs(); for (int i=0; i < ids.size(); i++) { int theID = ((Integer)ids.elementAt(i)).intValue(); JahiaFieldDefinition fDef = fServ.loadFieldDefinition(theID); if ( fDef.getJahiaID()==site.getID() ){ fServ.deleteFieldDefinition(fDef.getID()); } } return true; } //------------------------------------------------------------------------- /** * Purge site's applications * * @param (JahiaUser) the user to check right * @param (JahiaSite) the site * @return boolean false on error * @author NK */ public static boolean deleteApplications(JahiaUser user, JahiaSite site) throws JahiaException { /* if ( !checkAdminAccess(user) ){ return false; } */ if ( site == null || user == null ){ return false; } JahiaGroup adminGrp = getAdminGroup(site); if ( adminGrp == null || !adminGrp.isMember(user) ){ return false; } JahiaWebAppsDeployerService ads = ServicesRegistry .getInstance() .getJahiaWebAppsDeployerService(); if ( ads == null ){ return false; } StringBuffer buff = null; File f = null; String path = ads.getNewWebAppsPath();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -