📄 manageusers.java
字号:
// $Id: ManageUsers.java,v 1.21 2003/01/29 15:48:13 pmartin Exp $//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .////package org.jahia.admin.users;import java.io.IOException;import java.util.HashMap;import java.util.Properties;import java.util.Set;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.jahia.admin.homepages.HomePageTool;import org.jahia.services.homepages.*;import org.jahia.bin.Jahia;import org.jahia.bin.JahiaAdministration;import org.jahia.exceptions.JahiaException;import org.jahia.params.ParamBean;import org.jahia.registries.ServicesRegistry;import org.jahia.security.license.LicenseKey;import org.jahia.services.pages.JahiaPageBaseService;import org.jahia.services.sites.JahiaSite;import org.jahia.services.usermanager.*;import org.jahia.utils.JahiaConsole;import org.jahia.utils.JahiaTools;import org.jahia.viewhelper.UsersViewHelper;/** * desc: This class is used by the administration to manage users * (add a user, edit and delete) from the Jahia software. * * Copyright: Copyright (c) 2002 * Company: Jahia Ltd * * @author Alexandre Kraft * @author Philippe Martin * * @version 2.0 */public class ManageUsers{ private static final String CLASS_NAME = ManageUsers.class.getName(); private static final String JSP_PATH = JahiaAdministration.JSP_PATH; private static JahiaUserManagerService uMgr; private static JahiaGroupManagerService gMgr; private JahiaSite jahiaSite; private HomePageTool homePageTool = null; private String userMessage = ""; private LicenseKey mLicenseKey; /** * FIXME : Fuck that shit, beurk, seems to be an ugly bug. I put this variable instance member instead of static. */ //private static Set _searchResult = null; private Set _searchResult = null; private static UsersViewHelper usersViewHelper; // This attribute will be set to true if the super admin change its // properties, false other wise. private static boolean isSuperAdminProp; /** * Constructor called from JahiaAdministration * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. * * @throws Throwable */ public ManageUsers( 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... jahiaSite = (JahiaSite) session.getAttribute( ParamBean.SESSION_SITE ); usersViewHelper = new UsersViewHelper(jahiaSite); mLicenseKey = Jahia.getLicenseKey(); if ( mLicenseKey == null ){ // set request attributes... request.setAttribute("jahiaDisplayMessage", "Invalid License Key"); // redirect... doRedirect( request, response, session, JSP_PATH + "menu.jsp" ); return; } // continue the execution of user request... userRequestDispatcher( request, response, session ); } /** * Default constructor. * * @throws Throwable */ public ManageUsers() throws Throwable { ServicesRegistry sReg = ServicesRegistry.getInstance(); if (sReg != null) { uMgr = sReg.getJahiaUserManagerService(); gMgr = sReg.getJahiaGroupManagerService(); } } /** * This method is used like a dispatcher for user requests. * * @param request Servlet request. * @param response Servlet response. * @param session Servlet session for the current user. * * @throws Throwable */ private void userRequestDispatcher( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws Throwable { String operation = request.getParameter("sub"); if (operation.equals("display")) { displayUsers(request, response, session); } else if (operation.equals("search")) { _searchResult = null; displayUsers(request, response, session); } else if (operation.equals("create")) { displayUserCreate(request, response, session); } else if (operation.equals("edit")) { isSuperAdminProp = false; displayUserEdit(request, response, session); } else if (operation.equals("superAdminProps")) { isSuperAdminProp = true; displayUserEdit(request, response, session); } else if (operation.equals("remove")) { displayUserRemove(request, response, session); } else if (operation.equals("processCreate")) { if (processUserCreate(request, response, session)) { displayUsers(request, response, session); } else { displayUserCreate(request, response, session); } } else if (operation.equals("processEdit")) { if (processUserEdit(request, response, session)) { if (isSuperAdminProp) { JahiaAdministration.displayMenu(request, response, session); } else { displayUsers(request, response, session); } } else { displayUserEdit(request, response, session); } } else if (operation.equals("processRemove")) { processUserRemove(request, response, session); } else if (operation.equals("homepage")) { processHomePage(request, response, session); } } /** * Forward the servlet request and servlet response objects, using the request * dispatcher (from the ServletContext). Note: please be careful, use only * context relative path. * * @param request servlet request. * @param response servlet response. * @param session Servlet session for the current user. * @param target target, context-relative path. * @exception IOException an I/O exception occured during the process. * @exception ServletException a servlet exception occured during the process. */ private void doRedirect( HttpServletRequest request, HttpServletResponse response, HttpSession session, String target ) throws IOException, ServletException { try { request.setAttribute("jahiaSite",jahiaSite); // check null warning msg if ( request.getAttribute("warningMsg") == null ) { request.setAttribute("warningMsg", ""); } // check null jsp bottom message, and fill in if necessary... if ( request.getAttribute("msg") == null ) { request.setAttribute("msg", Jahia.COPYRIGHT); } // check null configuration step title, and fill in if necessary... if ( request.getAttribute("title") == null ) { request.setAttribute("title", "Manage Users"); } // redirect! JahiaAdministration.doRedirect(request, response, session, target); } catch (IOException ie) { JahiaConsole.println(CLASS_NAME+".doRedirect() :" , "error " + ie.getMessage()); } catch (ServletException se) { JahiaConsole.println(CLASS_NAME+".doRedirect() :", "error " + se.getMessage()); } } /** * Display the Jahia users and external (if possible) users management menus * including the user search engine. * @param request * @param response * @param session * @throws IOException * @throws ServletException * @throws JahiaException */ private void displayUsers(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { request.setAttribute("providerList", uMgr.getProviderList()); if (_searchResult == null) { _searchResult = usersViewHelper.getSearchResult(request); } request.setAttribute("resultList", usersViewHelper.getUserListForDisplay(_searchResult)); request.setAttribute("currentSite", jahiaSite.getServerName()); request.setAttribute("jspSource", JSP_PATH + "/user_management/user_management.jsp"); request.setAttribute("directMenu", JSP_PATH + "/direct_menu.jsp"); request.setAttribute("userSearch", JSP_PATH + "/user_management/user_search.jsp"); session.setAttribute("jahiaDisplayMessage", Jahia.COPYRIGHT); session.setAttribute("userMessage", userMessage); // Remove any home page definition from the session. session.setAttribute("homePageID", null); session.setAttribute("homePageLabel", null); doRedirect(request, response, session, JSP_PATH + "/admin.jsp"); userMessage = ""; } /** * Display the user creation interface. * * @param request * @param response * @param session * @throws IOException * @throws ServletException * @throws JahiaException */ private void displayUserCreate(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".displayUserCreate","started"); // Check user limitation according to license. int nbUserSite = ServicesRegistry.getInstance().getJahiaUserManagerService().getNbUsers(); int nbUserLic = mLicenseKey.getUserLimit(); /** @todo >= because default user 'root' is not considerated as a real user. */ if (!(nbUserLic == -1 || nbUserLic >= nbUserSite)) { userMessage = "Sorry but the license is limited to " + nbUserLic + " users."; displayUsers(request, response, session); return; } HashMap userProperties = new HashMap(); userProperties.put("username", JahiaTools.nnString(request.getParameter("username"))); userProperties.put("firstname", JahiaTools.nnString(request.getParameter("firstname"))); userProperties.put("lastname", JahiaTools.nnString(request.getParameter("lastname"))); userProperties.put("email", JahiaTools.nnString(request.getParameter("email"))); userProperties.put("passwd", JahiaTools.nnString(request.getParameter("passwd"))); userProperties.put("passwdconfirm", JahiaTools.nnString(request.getParameter("passwdconfirm"))); userProperties.put("organization", JahiaTools.nnString(request.getParameter("organization"))); // Is here any home page definition ? JahiaHomepagesService hpServ = ServicesRegistry.getInstance().getJahiaHomepagesService(); JahiaHomepage homePage = hpServ.getHomepage(jahiaSite.getUserDefaultHomepageDef()); if (homePage != null) { JahiaHomepageLink homePageLink = (JahiaHomepageLink)homePage; session.setAttribute("homePageID", new Integer(homePageLink.getPageID())); request.setAttribute("defaultHomePage", JahiaPageBaseService.getInstance(). lookupPageWhitoutTemplates(homePageLink.getPageID()).getTitle() + " (" + homePage.getName() + ")"); } // set request attributes... request.setAttribute("userProperties", userProperties); session.setAttribute("userMessage", userMessage); request.setAttribute("jspSource", JSP_PATH + "/user_management/user_create.jsp"); request.setAttribute("directMenu", JSP_PATH + "/direct_menu.jsp"); session.setAttribute("jahiaDisplayMessage", Jahia.COPYRIGHT); doRedirect(request, response, session, JSP_PATH + "/admin.jsp"); userMessage = ""; } /** * Process the user creation interface. If any problem, the "userRequestDispatcher" * method is in charge to redisplay the user creation interface. * 1) Check for a valid user name. * 2) Check for a valid password. * 3) Create a new user and put it into the Jahia DB. * * @param request * @param response * @param session * @return true if operation successed, false otherwise.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -