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