📄 managegroups.java
字号:
/** * Display a confirmation form to remove a group * * @param request * @param response * @param session * @throws IOException * @throws ServletException */ private void displayGroupRemove( 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); request.setAttribute("jspSource", JSP_PATH + "/group_management/group_remove.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"); } } /** * Remove a group from the jahia DB * * @param request * @param response * @param session * @throws IOException * @throws ServletException */ private void processGroupRemove( HttpServletRequest request, HttpServletResponse response, HttpSession session ) throws IOException, ServletException { String groupName = (String) request.getParameter("groupName"); JahiaGroup theGroup = (JahiaGroup)gMgr.lookupGroup(jahiaSite.getID(), groupName); groupMessage = ""; Set groupMembers = getGroupMembers(groupName, jahiaSite.getID()); Iterator it = groupMembers.iterator(); while (it.hasNext()) { theGroup.removeMember((JahiaUser)it.next()); } if (groupMessage.equals("")) { // delete membership... try { JahiaSiteGroupManagerService siteGroupManager = ServicesRegistry.getInstance().getJahiaSiteGroupManagerService(); siteGroupManager.removeGroup(theGroup); } catch (Exception e) { } // delete group... if (!gMgr.deleteGroup(theGroup)) { groupMessage = "Cannot remove [" + groupName + "] group"; } else { groupMessage = "Group [" + groupName + "] successfully removed"; } } displayGroupList( request, response, session ); groupMessage = ""; } /** * Create a group * FIXME : This method has to be rechecked. * * @param session ??? FIXME : Has to be removed ? * @param name The group name * @return A reference to the newly created group. */ private JahiaGroup createGroup(HttpSession session, String name) { // create the group... JahiaGroup theGroup = null; theGroup = gMgr.createGroup(jahiaSite.getID(), name , null); if (theGroup != null) { // create group membership... try { JahiaSiteGroupManagerService siteGroupManager = ServicesRegistry.getInstance().getJahiaSiteGroupManagerService(); siteGroupManager.addGroup(jahiaSite.getID(), theGroup); } catch (Exception e) { } } return theGroup; } // FIXME : Has this method really something to do here ? /** * Return the member vector of a given site and a given group. * * @param groupName * @param jahiaSite * @return the member Set of a given site and a given group. */ private Set getGroupMembers(String groupName, int jahiaSite) { JahiaGroup theGroup = (JahiaGroup)gMgr.lookupGroup(jahiaSite, groupName); Set groupMembers = new HashSet(); if (theGroup != null) { Enumeration groupMembersEnum = theGroup.members(); while (groupMembersEnum.hasMoreElements()) { Object member = (Object)groupMembersEnum.nextElement(); // keep only members from this jahiaSite... if (member instanceof JahiaUser) { // ugly hack because we can't test the site ID on an external // user provider for the moment... if (member instanceof JahiaDBUser) { if (((JahiaUser)member).getSiteID() == jahiaSite) { groupMembers.add((JahiaUser)member); } } else { groupMembers.add((JahiaUser)member); } } else { if (((JahiaGroup)member).getSiteID() == jahiaSite) { groupMembers.add((JahiaGroup)member); } } } } return groupMembers; } /** * Recover membership and its site of a group. * FIXME : Has to be recheked. * * @param groupName the group name * @param jahiaSite a jahia site ID * @return the group member ship */ private Vector getGroupMembership(String groupName, int jahiaSite) { JahiaGroup theGroup = (JahiaGroup)gMgr.lookupGroup(jahiaSite, groupName); Vector groupMembership = new Vector(); if (theGroup != null) { Enumeration groupMembersEnum = theGroup.members(); while (groupMembersEnum.hasMoreElements()) { Object obj = (Object)groupMembersEnum.nextElement(); // keep only out member of this jahiaSite... if ((obj instanceof JahiaUser) && (((JahiaUser)obj).getSiteID() != jahiaSite)) { JahiaUser grpMembers = (JahiaUser)obj; groupMembership.add(grpMembers.getUsername()); // Member name // Look for site name from membership int memberSiteID = grpMembers.getSiteID(); if (memberSiteID == 0) { groupMembership.add("jahia server"); } else { try { JahiaSitesService sitesManager = ServicesRegistry.getInstance().getJahiaSitesService(); JahiaSite memberSite = sitesManager.getSite(memberSiteID); if (memberSite != null) { groupMembership.add(memberSite.getServerName()); } else { groupMembership.add("unknow"); } } catch (Exception e) { } } } } } return groupMembership; } /** * Add or remove members to a group. * FIXME : This method has to be rechecked ! * * @param left a set of members to check * @param right a set of members to check * @param addRem the addMembers or removeMembers method to apply. * @param grp the object defining the previous method */ private void addRemoveGroupMembers(HashSet left, HashSet right, Method addRem, JahiaGroup grp) { Iterator itRight = right.iterator(); while (itRight.hasNext()) { JahiaUser elementRight = (JahiaUser)itRight.next(); Iterator itLeft = left.iterator(); while (itLeft.hasNext()) { JahiaUser elementLeft = (JahiaUser)itLeft.next(); if (elementLeft.getUsername().equals(elementRight.getUsername())) { elementRight = null; break; } } if (elementRight != null) { try { Object[] args = { elementRight }; addRem.invoke(grp, args); } catch (IllegalAccessException iae) { JahiaConsole.printe(CLASS_NAME+".processUserEdit", iae); } catch (InvocationTargetException ite) { JahiaConsole.printe(CLASS_NAME+".processUserEdit", ite); } } } } /** * Get the groups from a site a prepare them for display. * * @param searchResult * @return a formated array list of string. */ private ArrayList getGroupListForDisplay(Vector searchResult) { ArrayList resultList = new ArrayList(); Enumeration groupListEnum = searchResult.elements(); while (groupListEnum.hasMoreElements()) { String groupKey = (String)groupListEnum.nextElement(); JahiaGroup group = ServicesRegistry.getInstance().getJahiaGroupManagerService().lookupGroup(groupKey); String provider = JahiaString.adjustStringSize(group.getProviderName(), 6) + " "; // Construct a displayable groupname String grpname = JahiaString.adjustStringSize(group.getGroupname(), 15); // Find some group members for properties Enumeration grpMembers = group.members(); String members = "("; while (grpMembers.hasMoreElements()) { Object obj = (Object)grpMembers.nextElement(); if (obj instanceof JahiaUser) { JahiaUser tmpUser = (JahiaUser)obj; members += tmpUser.getUsername(); } else { JahiaGroup tmpGroup = (JahiaGroup)obj; members += tmpGroup.getGroupname(); } if (members.length() > 30) break; if (grpMembers.hasMoreElements()) members += ", "; } members += ")"; members = JahiaString.adjustStringSize(members, 30); String result = provider + " " + grpname + " " + members; resultList.add(group.getGroupname()); resultList.add(JahiaTools.replacePattern(result, " ", " ")); } return resultList; } /** * 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); } } /** * Apply the GroupMembersTool object displaying the users search module. * * @param request * @param response * @param session * @throws Throwable */ private void processGroupMembers(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws Throwable { if (groupMembersTool == null) { groupMembersTool = new GroupMembersTool(request, response, session); } else { groupMembersTool.requestDispatcher(request, response, session); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -