📄 managegroups.java
字号:
{ String groupName = (String)request.getParameter("groupName").trim(); if (groupName.length() == 0) { groupMessage = "Please specify a group name"; return false; } // Does the introduced groupName contain some errors ? if (groupName.length() == 0) { groupMessage = "Please specify a group 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(groupName)) { groupMessage = "Use only letters, digits or underscores in group name"; return false; } else if (gMgr.groupExists (jahiaSite.getID(), groupName)) { groupMessage = "Group [" + groupName + "] already exists in this jahiaSite"; return false; } // try to create the new group... JahiaGroup grp = createGroup(session, groupName); if (grp == null) { groupMessage = "Unable to create group " + groupName; return false; } else { groupMessage = "Group [" + groupName + "] 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+".processGroupCreate", "Process Home Page ID : " + homePageID); grp.setHomepageID(homePageID); } } return true; } /** * Display group members and home page * * @param request * @param response * @param session * @throws IOException * @throws ServletException * @throws JahiaException */ private void displayGroupEdit(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".displayGroupEdit", "Started"); String groupToEdit = request.getParameter("selectedGroup"); if (groupToEdit == null) { // Get the last group if none was selected. groupToEdit = (String)session.getAttribute("selectedGroup"); } if (groupToEdit == null || "null".equals(groupToEdit)) { groupMessage = "Please select a group in the select box"; displayGroupList(request, response, session); return; } // Consider actual selected group as the last one and store it in session. session.setAttribute("selectedGroup", groupToEdit); JahiaGroup theGroup = (JahiaGroup)gMgr.lookupGroup(jahiaSite.getID(), groupToEdit); groupMembers = (HashSet)getGroupMembers(groupToEdit, jahiaSite.getID()); // display the edit form with initial values // FIXME : the method name ('getUserListForDisplay') is disputable here. request.setAttribute("groupMembers", usersViewHelper.getUserListForDisplay(groupMembers)); // Get the home page if (session.getAttribute("homePageLabel") == null) { int homePageID = theGroup.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("homePageID", new Integer(homePageID)); session.setAttribute("homePageLabel", JahiaPageBaseService. getInstance().lookupPageWhitoutTemplates(homePageID).getTitle()); } catch (JahiaException je) { JahiaConsole.printe(CLASS_NAME+".displayUserEdit", je); groupMessage = "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 + "/group_management/group_edit.jsp"); request.setAttribute("directMenu", JSP_PATH + "/direct_menu.jsp"); session.setAttribute("jahiaDisplayMessage", Jahia.COPYRIGHT); session.setAttribute("groupMessage", groupMessage); doRedirect(request, response, session, JSP_PATH + "/admin.jsp"); groupMessage = ""; } /** * Process modifications to the group previously edited. * * @param request * @param response * @param session * @throws IOException * @throws ServletException * @throws JahiaException */ private void processGroupEdit(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException, JahiaException { JahiaConsole.println(CLASS_NAME+".processGroupEdit", "Started"); String groupName = (String)request.getParameter("groupName"); JahiaGroup grp = gMgr.lookupGroup(jahiaSite.getID(), groupName); // 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); grp.setHomepageID(homePageID); } else { grp.removeProperty("group_homepage"); } } // let's recuperate the members of the group from the selection box String[] newMembersList = (String[])request.getParameterValues("selectMember"); // convert to HashSet HashSet candidateMembers = new HashSet(); if (newMembersList != null) { for (int i = 0; i < newMembersList.length; i++) { // remove identifier type ("u " or "g " and provider) for future use. JahiaUser usr = (JahiaUser)uMgr.lookupUser(jahiaSite.getID(), newMembersList[i].substring(10)); candidateMembers.add(usr); } } // Update group members if (candidateMembers.size() > 0) { try { // FIXME : Is here a way to optmize these pointer to method ? // Is there any new members to the original groupMembers addRemoveGroupMembers(groupMembers, candidateMembers, JahiaGroup.class.getMethod("addMember", new Class[] {Principal.class}), grp); // Is there any removed members from the original groupMembers addRemoveGroupMembers(candidateMembers, groupMembers, JahiaGroup.class.getMethod("removeMember", new Class[] {Principal.class}), grp); } catch (NoSuchMethodException nsme) { JahiaConsole.printe(CLASS_NAME+".processUserEdit", nsme); } } else { // No member in the select box, all members have to be removed Iterator it = groupMembers.iterator(); while (it.hasNext()) { grp.removeMember((JahiaUser)it.next()); } } groupMessage = "Group [" + groupName + "] successfully updated."; } /** * Display group members defining from other sites * * @param request * @param response * @param session * @throws IOException * @throws ServletException */ private void displayGroupMembership( HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException { String selectedGroup = request.getParameter("selectedGroup"); if (selectedGroup == null) { groupMessage = "Please select a group in the select box"; displayGroupList(request, response, session); } else { request.setAttribute("groupName", selectedGroup); Vector groupMembership = getGroupMembership(selectedGroup, jahiaSite.getID()); request.setAttribute("groupMembership", groupMembership); request.setAttribute("jspSource", JSP_PATH + "/group_management/group_view.jsp"); request.setAttribute("directMenu", JSP_PATH + "/direct_menu.jsp"); session.setAttribute("jahiaDisplayMessage", Jahia.COPYRIGHT); doRedirect(request, response, session, JSP_PATH + "/admin.jsp" ); groupMessage = ""; } } /** * Display the form permitting to copy the selected group. * * @param request * @param response * @param session * @throws IOException * @throws ServletException */ private void displayGroupCopy( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { JahiaConsole.println(CLASS_NAME+".displayGroupCopy", "Started"); request.setAttribute("newGroup", JahiaTools.nnString(request.getParameter("newGroup"))); String selectedGroup = request.getParameter("selectedGroup"); if (selectedGroup == null) { // Get the last group if none was selected. selectedGroup = (String)session.getAttribute("selectedGroup"); } if (selectedGroup == null || "null".equals(selectedGroup)) { groupMessage = "Please select a group in the select box"; displayGroupList(request, response, session); return; } // Consider actual selected group as the last one and store it in session. session.setAttribute("selectedGroup", selectedGroup); session.setAttribute("groupMessage", groupMessage); request.setAttribute("jspSource", JSP_PATH + "/group_management/group_copy.jsp"); request.setAttribute("directMenu", JSP_PATH + "/direct_menu.jsp"); session.setAttribute("jahiaDisplayMessage", Jahia.COPYRIGHT); doRedirect(request, response, session, JSP_PATH + "/admin.jsp" ); groupMessage = ""; } /** * Make a copy of a group. * * @param request * @param response * @param session * @return true if group successfully copied. * @throws IOException * @throws ServletException */ private boolean processGroupCopy(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException, ServletException { String groupName = (String)request.getParameter("newGroup"); String sourceGroupName = (String)session.getAttribute("selectedGroup"); // Does the introduced groupName contain some errors ? if (groupName.length() == 0) { groupMessage = "Please specify a group 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(groupName)) { groupMessage = "Use only letters, digits or underscores in group name"; return false; } else if (gMgr.groupExists (jahiaSite.getID(), groupName)) { groupMessage = "Group [" + groupName + "] already exists in this site"; return false; } // Try to create the new group if (createGroup(session, groupName) == null) { groupMessage = "Unable to create group " + groupName; return false; } else { JahiaGroup theNewGroup = gMgr.lookupGroup(jahiaSite.getID(), groupName); groupMessage = "Group [" + groupName + "] successfully created."; Set sourceGroupMembers = getGroupMembers(sourceGroupName, jahiaSite.getID()); Iterator it = sourceGroupMembers.iterator(); while (it.hasNext()) { theNewGroup.addMember((JahiaUser)it.next()); } // Home page copy JahiaGroup sourceGroup = gMgr.lookupGroup(jahiaSite.getID(), sourceGroupName); int homePageID = sourceGroup.getHomepageID(); if (homePageID != -1) { theNewGroup.setHomepageID(homePageID); } } return true; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -