📄 managecomponents.java
字号:
// $Id: ManageComponents.java,v 1.4 2002/08/28 14:34:07 knguyen Exp $//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .////// ManageComponents//// 01.04.2001 AK added in jahia.// 15.05.2001 NK clean bunch of codes.//package org.jahia.admin.components;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import org.jahia.bin.*;import org.jahia.utils.*;import org.jahia.utils.properties.*;import org.jahia.registries.*;import org.jahia.exceptions.*;import org.jahia.params.*;import org.jahia.services.sites.*;import org.jahia.services.jef.*;import org.jahia.data.webapps.*;import org.jahia.data.applications.*;import org.jahia.services.database.*;import org.jahia.services.usermanager.*;import org.jahia.services.applications.*;import org.jahia.services.webapps_deployer.*;import org.jahia.services.shares.*;import org.jahia.security.license.*;/** * desc: This class is used by the administration to manage * all the components you've added to your Jahia portal. You can add a * component, edit, change the visibility of the component and edit * its options. You can also view non-installed components. * * Copyright: Copyright (c) 2002 * Company: Jahia Ltd * * @author Khue N'Guyen * @author Alexandre Kraft * @version 1.0 */public class ManageComponents{ private static final String CLASS_NAME = JahiaAdministration.CLASS_NAME; private static final String JSP_PATH = JahiaAdministration.JSP_PATH; private static final String MSG_INTERNAL_ERROR = new String ("Jahia Administration internal error"); private JahiaSite site; private JahiaUser user; private ServicesRegistry sReg; private LicenseKey mLicenseKey; /** * Default constructor. * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ public ManageComponents( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws Throwable { mLicenseKey = Jahia.getLicenseKey(); if ( mLicenseKey == null ){ // set request attributes... request.setAttribute("jahiaDisplayMessage", "Invalid License Key"); // redirect... JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); return; } userRequestDispatcher( request, response, session ); } // end constructor //------------------------------------------------------------------------- /** * This method is used like a dispatcher for user requests. * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ private void userRequestDispatcher( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws Throwable { String operation = request.getParameter("sub"); sReg = ServicesRegistry.getInstance(); // check if the user has really admin access to this site... user = (JahiaUser) session.getAttribute( ParamBean.SESSION_USER ); site = (JahiaSite) session.getAttribute( ParamBean.SESSION_SITE ); if ( site != null && user != null && sReg != null){ if ( JahiaSiteTools.getAdminGroup(site).isMember(user) ){ // set the new site id to administrate... request.setAttribute( "site", site ); if(operation.equals("display")) { displayComponentList( request, response, session ); } else if(operation.equals("displaynewlist")) { displayNewComponentList( request, response, session ); } else if(operation.equals("details")) { displayNewComponentDetail( request, response, session ); } else if(operation.equals("visibility")) { confirmComponentVisibilityChange( request, response, session ); } else if(operation.equals("savevisibility")) { saveComponentVisibility( request, response, session ); } else if(operation.equals("edit")) { editComponent( request, response, session ); } else if(operation.equals("add")) { addComponent( request, response, session ); } else if(operation.equals("share")) { shareComponent( request, response, session ); } else if(operation.equals("options")) { editComponentOption( request, response, session ); } else if(operation.equals("decryptjec")) { decryptJec( request, response, session ); } } else { //System.out.println(" --> no admin access on this site <--"); request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } } else { request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } } // userRequestDispatcher //------------------------------------------------------------------------- /** * Display the list of components. * @author NK * * @param request Servlet request. * @param response Servlet response. * @param session HttpSession object. */ private void displayComponentList( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { try { JahiaApplicationsManagerService appPersServ = sReg.getJahiaApplicationsManagerService(); AppsShareService appShareServ = sReg.getAppsShareService(); if ( appPersServ == null || appShareServ == null ){ throw new JahiaException( "Unavailable Services", "Unavailable Services", JahiaException.SERVICE_ERROR, JahiaException.ERROR ); } // all apps Vector appList = appPersServ.getApplications(); // list of authorized apps Vector authAppList = new Vector(); int size = appList.size(); ApplicationBean app =null; for (int i=0 ; i<size ; i++){ app = (ApplicationBean)appList.get(i); if ( app.isShared() || (app.getJahiaID() == site.getID()) || ( appShareServ.getShare(site,app) != null ) ){ authAppList.add(app); } } request.setAttribute("appsList", authAppList.elements()); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "manage_components.jsp" ); } catch ( JahiaException je ){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } } // end displayComponentList //------------------------------------------------------------------------- /** * Display the list of new components. * * @author NK * @param request Servlet request. * @param response Servlet response. * @param session HttpSession object. */ private void displayNewComponentList( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { try { JahiaWebAppsDeployerService appDepServ = sReg.getJahiaWebAppsDeployerService(); if ( appDepServ == null ){ throw new JahiaException( "Unavailable Services", "Unavailable Services", JahiaException.SERVICE_ERROR, JahiaException.ERROR ); } // get the list of new web apps Enumeration newWebAppsKeys = appDepServ.getWebAppsPackageKeys(site.getSiteKey()); Enumeration enum = appDepServ.getWebAppsPackages(site.getSiteKey()); Vector vec = new Vector(); JahiaWebAppsPackage aPackage = null; while (enum.hasMoreElements()){ aPackage = (JahiaWebAppsPackage)enum.nextElement(); if ( aPackage != null ){ vec.add(aPackage); } else { //System.out.println("displayNewComponentList packages is null"); } } request.setAttribute("packagesList", vec.elements()); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "new_components.jsp" ); } catch ( JahiaException je ){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); } } //------------------------------------------------------------------------- /** * Display informations about a new component * * @author NK * @param request Servlet request. * @param response Servlet response. * @param session HttpSession object. */ private void displayNewComponentDetail( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { try { JahiaWebAppsDeployerService appDepServ = sReg.getJahiaWebAppsDeployerService(); if ( appDepServ == null ){ throw new JahiaException( "Unavailable Services", "Unavailable Services", JahiaException.SERVICE_ERROR, JahiaException.ERROR ); } // get the new component String packageName = (String)request.getParameter("package_name"); JahiaWebAppsPackage aPackage = (JahiaWebAppsPackage)appDepServ .getWebAppsPackage( site.getSiteKey() + "_" + packageName); String subAction =(String)request.getParameter("subaction"); if ( subAction == null ){ request.setAttribute("canDeploy",new Boolean(appDepServ.canDeploy())); request.setAttribute("aPackage", aPackage); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "new_component_detail.jsp" ); } else if ( subAction.equals("deploy") ){ try { if (appDepServ.deploy( site, aPackage.getContextRoot(), aPackage.getFilePath())){ displayNewComponentList(request,response,session); } else { session.setAttribute( CLASS_NAME + "jahiaDisplayMessage", "An error occurred while deploying the package"); request.setAttribute( "aPackage", aPackage ); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "new_component_detail.jsp" ); } } catch ( JahiaException je ){ request.setAttribute("aPackage", aPackage); session.setAttribute( CLASS_NAME + "jahiaDisplayMessage", "An error occurred while deploying the package"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "new_component_detail.jsp" ); } } else if ( subAction.equals("delete") ){ try { if (appDepServ.deletePackage(site,aPackage.getFilePath())){ displayNewComponentList(request,response,session); } else { request.setAttribute("aPackage", aPackage); session.setAttribute( CLASS_NAME + "jahiaDisplayMessage", "An error occurred while deleting the package"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "new_component_detail.jsp" ); } } catch ( IOException ioe ){ session.setAttribute( CLASS_NAME + "jahiaDisplayMessage", "An error occurred while deleting the package"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "new_component_detail.jsp" ); } } } catch ( JahiaException je ){ request.setAttribute("jahiaDisplayMessage", "An error occured while processing your request"); JahiaAdministration.doRedirect( request, response, session, JSP_PATH + "menu.jsp" );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -