1 17 18 package org.apache.geronimo.console.securitymanager; 19 20 import java.io.IOException ; 21 import java.util.Hashtable ; 22 23 import javax.portlet.ActionRequest; 24 import javax.portlet.ActionResponse; 25 import javax.portlet.PortletConfig; 26 import javax.portlet.PortletContext; 27 import javax.portlet.PortletException; 28 import javax.portlet.RenderRequest; 29 import javax.portlet.RenderResponse; 30 import javax.portlet.WindowState; 31 32 import org.apache.geronimo.console.util.SERealmGroupHelper; 33 import org.apache.geronimo.console.util.SERealmUserHelper; 34 35 public class SEGroupsPortlet extends AbstractSecurityManagerPortlet { 36 37 protected void doView(RenderRequest renderRequest, 38 RenderResponse renderResponse) throws PortletException, IOException { 39 if (WindowState.MINIMIZED.equals(renderRequest.getWindowState())) { 40 return; 41 } 42 43 String errorMessage = renderRequest.getParameter("errorMessage"); 44 45 if (errorMessage != null) { 46 renderRequest.setAttribute("errorMessage", errorMessage); 47 errorView.include(renderRequest, renderResponse); 48 } else { 49 String currAction = renderRequest.getParameter("currAction"); 50 String message = renderRequest.getParameter("message"); 51 renderRequest.setAttribute("message", message); 52 53 try { 54 if ("new".equals(currAction)) { 55 renderRequest.setAttribute("users", SERealmUserHelper 56 .getUsers()); 57 addMaximizedView.include(renderRequest, renderResponse); 58 } else if ("edit".equals(currAction)) { 59 String group = renderRequest.getParameter("group"); 60 renderRequest.setAttribute("group", group); 61 renderRequest.setAttribute("users", SERealmUserHelper 62 .getUsers()); 63 addMaximizedView.include(renderRequest, renderResponse); 64 } else { 65 String [] groups = SERealmGroupHelper.getGroups(); 66 Hashtable groupsInfo = new Hashtable (); 67 for (int i = 0; i < groups.length; i++) { 68 String currentGroup = groups[i]; 69 groupsInfo.put(currentGroup, SERealmGroupHelper 70 .getUsers(currentGroup)); 71 } 72 renderRequest.setAttribute("groupsInfo", groupsInfo); 73 74 if (WindowState.NORMAL.equals(renderRequest 75 .getWindowState())) { 76 normalView.include(renderRequest, renderResponse); 77 } else { 78 maximizedView.include(renderRequest, renderResponse); 79 } 80 } 81 } catch (Exception e) { 82 errorMessage = e.getMessage(); 83 renderRequest.setAttribute("errorMessage", errorMessage); 84 errorView.include(renderRequest, renderResponse); 85 } 86 } 87 } 88 89 public void init(PortletConfig portletConfig) throws PortletException { 90 super.init(portletConfig); 91 PortletContext pc = portletConfig.getPortletContext(); 92 normalView = pc 93 .getRequestDispatcher("/WEB-INF/view/securityrealmmanager/se/groups/normal.jsp"); 94 addNormalView = pc 95 .getRequestDispatcher("/WEB-INF/view/securityrealmmanager/se/groups/addnormal.jsp"); 96 maximizedView = pc 97 .getRequestDispatcher("/WEB-INF/view/securityrealmmanager/se/groups/maximized.jsp"); 98 addMaximizedView = pc 99 .getRequestDispatcher("/WEB-INF/view/securityrealmmanager/se/groups/addmaximized.jsp"); 100 helpView = pc 101 .getRequestDispatcher("/WEB-INF/view/securityrealmmanager/se/groups/help.jsp"); 102 errorView = pc 103 .getRequestDispatcher("/WEB-INF/view/securityrealmmanager/se/groups/error.jsp"); 104 } 105 106 public void processAction(ActionRequest actionRequest, 107 ActionResponse actionResponse) throws PortletException, IOException { 108 String action = actionRequest.getParameter("action").trim(); 109 String cancel = actionRequest.getParameter("cancel"); 110 String currAction = ""; 111 if (cancel != null) { 112 action = ""; 113 } 114 String group = actionRequest.getParameter("group"); 115 String [] users = actionRequest.getParameterValues("users"); 116 117 try { 118 if ("delete".equals(action)) { 119 SERealmGroupHelper.deleteGroup(group); 120 } else if ("update".equals(action)) { 121 SERealmGroupHelper.updateGroup(group, users); 122 } else if ("add".equals(action)) { 123 try { 124 SERealmGroupHelper.addGroup(group, users); 125 } catch (Exception e) { 126 actionResponse.setRenderParameter("message", 127 "ERROR: Error in SEGroupsPortlet while adding group "+group+". Cause:"+e.getMessage()); 128 } 129 } else if ("new".equals(action)) { 130 currAction = "new"; 131 } else if ("edit".equals(action)) { 132 currAction = "edit"; 133 } 134 actionResponse.setRenderParameter("currAction", currAction); 135 if (group != null) { 136 actionResponse.setRenderParameter("group", group); 137 } 138 } catch (Exception e) { 139 actionResponse.setRenderParameter("message", 140 "Error encountered in SEGroupsPortlet. Cause: " 141 + e.getMessage()); 142 } 143 } 144 } | Popular Tags |