⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewaccess.java

📁 java 写的一个新闻发布系统
💻 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 + -