📄 viewaccess.java
字号:
// $Id: ViewAccess.java,v 1.2 2002/04/03 17:18:57 pvollenweider Exp $//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .////// ViewAccess//// 01.04.2001 AK added in jahia.// 22.04.2001 AK multisite modifications.// 17.05.2001 NK Integrate License Check.//package org.jahia.admin.access;import java.io.*;import java.util.*;import javax.servlet.*;import javax.servlet.http.*;import org.jahia.bin.*;import org.jahia.params.*;import org.jahia.utils.*;import org.jahia.utils.pagination.*;import org.jahia.exceptions.*;import org.jahia.services.pages.*;import org.jahia.services.usermanager.*;import org.jahia.services.sites.*;import org.jahia.registries.*;import org.jahia.security.license.*;/** * desc: This class is used by the administration to view users access * * Copyright: Copyright (c) 2002 * Company: Jahia Ltd * * @author Philippe Vollenweider * @version 1.0 */public class ViewAccess{ private static final String CLASS_NAME = JahiaAdministration.CLASS_NAME; private static final String JSP_PATH = JahiaAdministration.JSP_PATH; private static final Integer ITEMS_PER_PAGE = new Integer(10); private List missingFields = new ArrayList(); private List validationErrors = new ArrayList(); private static JahiaUserManagerService uMgr; private static JahiaGroupManagerService gMgr; private JahiaSite site; private JahiaUser user; 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 ViewAccess( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws Throwable { // get services... ServicesRegistry sReg = ServicesRegistry.getInstance(); if (sReg != null) { uMgr = sReg.getJahiaUserManagerService(); gMgr = sReg.getJahiaGroupManagerService(); } // get the current website. get the jahiaserver if it's null... site = (JahiaSite) session.getAttribute( ParamBean.SESSION_SITE ); user = (JahiaUser) session.getAttribute( ParamBean.SESSION_USER ); if(site==null) { JahiaSitesService sitesService = sReg.getJahiaSitesService(); site = sitesService.getSite( 0 ); session.setAttribute( ParamBean.SESSION_SITE, site ); } 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; } // continue the execution of user request... userRequestDispatcher( request, response, session ); } // end constructor /** * Default constructor. * @author Alexandre Kraft * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. */ public ViewAccess() throws Throwable { ServicesRegistry sReg = ServicesRegistry.getInstance(); if (sReg != null) { uMgr = sReg.getJahiaUserManagerService(); gMgr = sReg.getJahiaGroupManagerService(); } } // end constructor /** * This method is used like a dispatcher for user requests. * @author Philippe Vollenweider * * @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 { displayAccess( request, response, session, request.getParameter("sub")); } // userRequestDispatcher /** * Display the complete user access list, using JahiaAdministration.doRedirect(). * @author Philippe Vollenweider * * @param request The HttpServlet request. * @param response The HttpServlet response. * @param session The HttpSession object. * @param type Describe the type for output (tab || excel) */ protected void displayAccess( HttpServletRequest request, HttpServletResponse response, HttpSession session, String type ) throws IOException, ServletException { // Set the MIME type for the information being sent to the browser. // In this case, we are going to send excel or plain text if (type.equals("excel")){ response.setContentType( "application/ms-excel" ); response.setHeader("Content-Disposition","attachment; filename=\"user_access.xls\""); } else { response.setContentType( "text/plain" ); } // Get a reference to the output stream. // Anything written to this stream is sent directly to the browser // (The browser sees this as its input). ServletOutputStream result = response.getOutputStream(); try { String output = JahiaTools.html2text(drawRightsUserList()); result.println( output ); } catch ( Throwable t ){ // oups... } finally { result.close(); } // reset message... session.setAttribute(CLASS_NAME + "jahiaDisplayMessage", Jahia.COPYRIGHT); } // end displayAccess private String drawRightsUserList() throws JahiaException { StringBuffer output = new StringBuffer(); // find user list Vector theUserList = ServicesRegistry.getInstance().getJahiaSiteUserManagerService().getMembers(site.getID()); // find home page JahiaPage theHomePage = site.getHomePage(); // draw home page's childs, recursively if (theHomePage != null) { output.append("path"); Enumeration theUserList0 = theUserList.elements(); Enumeration theUserList1 = theUserList.elements(); while (theUserList0.hasMoreElements()) { JahiaUser theUser = (JahiaUser) theUserList0.nextElement(); output.append("\t").append(theUser.getUsername()); } output.append("\n").append(theHomePage.getTitle()); // display users rights output.append(getPageRights(theUserList1, theHomePage)); output.append(drawChildPages( theHomePage, theUserList )); } return output.toString(); } private String getPageRights( Enumeration theUserList, JahiaPage thePage ) throws JahiaException { StringBuffer output = new StringBuffer(); // Return User Rights for a Page while (theUserList.hasMoreElements()) { JahiaUser theUser = (JahiaUser) theUserList.nextElement(); output.append("\t"); if (thePage.checkReadAccess(theUser)) { output.append("r "); } if (thePage.checkWriteAccess(theUser)) { output.append("w "); } if (thePage.checkAdminAccess(theUser)) { output.append("a"); } } return output.append("\n").toString(); } private String drawChildPages( JahiaPage parentPage, Vector theUserList) throws JahiaException { StringBuffer output = new StringBuffer(); if (parentPage != null) { // get list of page childs Enumeration pageChilds = parentPage.getChilds(user); // parse list of page childs while (pageChilds.hasMoreElements()) { JahiaPage nextPage = (JahiaPage) pageChilds.nextElement(); if (nextPage != null) { Enumeration theUserList1 = theUserList.elements(); // display page path Enumeration thePath = nextPage.getPagePath(); while (thePath.hasMoreElements()) { JahiaPage thePage = (JahiaPage) thePath.nextElement(); output.append(thePage.getTitle()); if (thePath.hasMoreElements()) { output.append(" : "); } } // display users rights output.append(getPageRights(theUserList1, nextPage)); output.append(drawChildPages( nextPage, theUserList )); } } } // return output string return output.toString(); }} // end ViewAccess
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -