📄 manageusers.java
字号:
* @throws IOException * @throws ServletException * @throws JahiaException */ private boolean processUserCreate(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { // get form values... String username = request.getParameter("username").trim(); if (username.length() == 0) { userMessage = "Please specify a user name"; return false; } // The following test is really disputable because we should can enter // as well accentueted char and any internationalized char. else if (!JahiaTools.isAlphaValid(username)) { userMessage = "Use only letters, digits or underscores in User Name"; return false; } else if (uMgr.userExists(jahiaSite.getID(), username)) { userMessage = "User [" + username + "] already exists in this site"; return false; } String passwd = request.getParameter("passwd").trim(); if ("".equals(passwd)) { passwd = username + "123"; JahiaConsole.println(CLASS_NAME+".processUserCreate","ATTENTION !! No password for user " + username + ". Create the default one : " + passwd + "\n" + "This is not secure !!! Please redefine another password as soon as possible for this user."); } else { String passwdConfirm = request.getParameter("passwdconfirm").trim(); if (!passwdConfirm.equals(passwd)) { userMessage = "Password confirmation does not match. Please insert coins and try again."; return false; } else if (passwd.length() < 6) { userMessage = "Password should be minimum 6 characters length. Please try again."; return false; } } Properties userProps = new Properties(); userProps.setProperty("firstname", request.getParameter("firstname").trim()); userProps.setProperty("lastname", request.getParameter("lastname").trim()); userProps.setProperty("email", request.getParameter("email").trim()); userProps.setProperty("organization", request.getParameter("organization").trim()); JahiaUser usr = uMgr.createUser(username, passwd, username + ":" + jahiaSite.getID(), jahiaSite.getID(), userProps); if (usr == null) { userMessage = "Unable to create user " + username; return false; } else { JahiaSiteUserManagerService siteUserManager = ServicesRegistry.getInstance().getJahiaSiteUserManagerService(); siteUserManager.addMember(jahiaSite.getID(), usr); userMessage = "User [" + username + "] successfully created."; } // Lookup for home page settings and set it. if (request.getParameter("setHomePage") != null) { Integer homePageIDInt = (Integer)session.getAttribute("homePageID"); if (homePageIDInt != null) { int homePageID = homePageIDInt.intValue(); JahiaConsole.println(CLASS_NAME+".processUserCreate", "Process Home Page ID : " + homePageID); usr.setHomepageID(homePageID); } } _searchResult = null; return true; } /** * Display all user properties including home page redirection if exists. * * @param request * @param response * @param session * @throws IOException * @throws ServletException * @throws JahiaException */ private void displayUserEdit(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".displayUserEdit", "Started"); String userToEdit; JahiaUser theUser; if (isSuperAdminProp) { userToEdit = (String)session.getAttribute(JahiaAdministration.CLASS_NAME + "jahiaLoginUsername"); theUser = (JahiaUser)uMgr.lookupUser(0, userToEdit); // Spaces ensure the compatiblity format from the user_management.jsp select box userToEdit = " " + userToEdit; request.setAttribute("isSuperAdminProp", ""); } else { userToEdit = (String)request.getParameter("selectedUsers"); if (userToEdit == null) { // Get the last user if none was selected. userToEdit = (String)session.getAttribute("selectedUsers"); } if (userToEdit == null || "null".equals(userToEdit)) { userMessage = "Please select a user in the select box"; displayUsers(request, response, session); return; } // Consider actual selected user as the last one and store it in session. session.setAttribute("selectedUsers", userToEdit); theUser = (JahiaUser)uMgr.lookupUser(jahiaSite.getID(), userToEdit.substring(10)); } Properties userProperties = theUser.getProperties(); request.setAttribute("usernameValue", userToEdit); if (request.getParameter("firstname") != null) { userProperties.put("firstname", request.getParameter("firstname")); } if (request.getParameter("lastname") != null) { userProperties.put("lastname", request.getParameter("lastname")); } if (request.getParameter("email") != null) { userProperties.put("email", request.getParameter("email")); } if (request.getParameter("organization") != null) { userProperties.put("organization", request.getParameter("organization")); } request.setAttribute("passwd", ""); request.setAttribute("passwdconfirm", ""); request.setAttribute("userProperties", userProperties); // Get the home page if (session.getAttribute("homePageLabel") == null) { int homePageID = theUser.getHomepageID(); if (homePageID != -1) { // FIXME : This exception should arrive when the page is // erased. In this case it is the rule of the page remover // to ensure that no references to pages exist before // removing. /** @todo remove this exception catching when a correct page remover were implemented. */ try { session.setAttribute("homePageLabel", JahiaPageBaseService. getInstance().lookupPageWhitoutTemplates(homePageID).getTitle()); session.setAttribute("homePageID", new Integer(homePageID)); } catch (JahiaException je) { JahiaConsole.printe(CLASS_NAME+".displayUserEdit", je); userMessage = "Jahia encounters a problem with the home page." + "Was this page removed ?"; session.setAttribute("homePageLabel", "Disapeared !"); } } else { session.setAttribute("homePageLabel", "none"); } } request.setAttribute("jspSource", JSP_PATH + "/user_management/user_edit.jsp"); request.setAttribute("directMenu", JSP_PATH + "/direct_menu.jsp"); session.setAttribute("jahiaDisplayMessage", Jahia.COPYRIGHT); session.setAttribute("userMessage", userMessage); doRedirect(request, response, session, JSP_PATH + "/admin.jsp"); userMessage = ""; } /** * Process the user edition formular. * 1) Check if the user is coming out from Jahia DB * 2) Check password validity * 3) Set the user properties in DB * 4) Set the home page redirection if one is set. * * @param request * @param response * @param session * @return true if operation successed, false otherwise. * @throws IOException * @throws ServletException * @throws JahiaException */ private boolean processUserEdit(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".processUserEdit", "Started"); // get form values... String username = request.getParameter("username"); JahiaUser usr; if (isSuperAdminProp) { usr = (JahiaUser)uMgr.lookupUser(0, username); } else { usr = (JahiaUser)uMgr.lookupUser(jahiaSite.getID(), username); } JahiaConsole.println(CLASS_NAME+".processUserEdit", "Update user : " + usr.getUserKey()); if (usr.getUserKey().indexOf("{ldap}") != - 1) { // External user. i.e. LDAP // LDAP user processing // Actualy nothing to do } else { // jahia_db usr processing String passwd = request.getParameter("passwd").trim(); if (!"".equals(passwd)) { String passwdConfirm = request.getParameter("passwdconfirm").trim(); if (!passwdConfirm.equals(passwd)) { userMessage = "Password confirmation does not match. Please insert coins and try again."; return false; } else if (passwd.length() < 6) { userMessage = "Password should be minimum 6 characters length. Please try again."; return false; } } if (!"".equals(passwd) && !usr.setPassword(passwd)) { userMessage = "Cannot change password for user [" + username + "]"; return false; } usr.setProperty("firstname", request.getParameter("firstname").trim()); usr.setProperty("lastname", request.getParameter("lastname").trim()); usr.setProperty("email", request.getParameter("email").trim()); usr.setProperty("organization", request.getParameter("organization").trim()); } // Lookup for home page settings and set it. Integer homePageIDInt = (Integer)session.getAttribute("homePageID"); if (homePageIDInt != null) { int homePageID = homePageIDInt.intValue(); if (homePageID != -1) { JahiaConsole.println(CLASS_NAME+".processUserEdit", "Process Home Page ID : " + homePageID); usr.setHomepageID(homePageID); } else { // Why are attributes such JahiaDBUser.mHOMEPAGE_PROP sudenly private ? usr.removeProperty("user_homepage"); } } userMessage = "User [" + username + "] successfully updated."; return true; } /** * Display confirmation message for removing or not a Jahia user. * External user cannot be removed actualy. * * @param request * @param response * @param session * @throws IOException * @throws ServletException * @throws JahiaException */ private void displayUserRemove(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".displayUserRemove", "Started"); String selectedUsers = request.getParameter("selectedUsers"); if (selectedUsers == null || "null".equals(selectedUsers)) { userMessage = "Please select a user in the select box"; displayUsers(request, response, session); } else { JahiaUser theUser = (JahiaUser)uMgr.lookupUser(jahiaSite.getID(), selectedUsers.substring(10)); // set request attributes... request.setAttribute("usernameValue", selectedUsers); session.setAttribute("userMessage", userMessage); request.setAttribute("jspSource", JSP_PATH + "/user_management/user_remove.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 Jahia user DB removing. * CAUTION ! The user "guest" cannot be removed. * * @param request * @param response * @param session * @throws IOException * @throws ServletException * @throws JahiaException */ private void processUserRemove(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".processUserRemove", "Started"); session.setAttribute("selectedUsers", null); String userName = request.getParameter("username"); if (!userName.equals("guest")) { // try to delete the user and memberships... try { JahiaUser user = uMgr.lookupUser(jahiaSite.getID(), userName); JahiaUser currentUser = (JahiaUser)session.getAttribute(ParamBean.SESSION_USER); if (!user.getUserKey().equals(currentUser.getUserKey())) { JahiaSiteUserManagerService siteUserManager = ServicesRegistry.getInstance().getJahiaSiteUserManagerService(); siteUserManager.removeMember(user); uMgr.deleteUser(user); userMessage = "User " + userName + " successfully removed."; } else { userMessage = "Couldn't remove your user."; } } catch (Exception e) { userMessage = "Couldn't remove user " + userName + "."; } } else { userMessage = "Couldn't remove user guest."; } _searchResult = null; displayUsers( request, response, session); } /** * Apply the HomePageTool object displaying a home page tool popup window. * * @param request * @param response * @param session * @throws Throwable */ private void processHomePage(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws Throwable { if (homePageTool == null) { homePageTool = new HomePageTool(request, response, session); } else { homePageTool.requestDispatcher(request, response, session); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -