KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > console > securitymanager > SEUsersPortlet


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 package org.apache.geronimo.console.securitymanager;
19
20 import java.io.IOException JavaDoc;
21 import java.util.Collection JavaDoc;
22 import java.util.Hashtable JavaDoc;
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 JavaDoc {
40         if (WindowState.MINIMIZED.equals(renderRequest.getWindowState())) {
41             return;
42         }
43
44         String JavaDoc 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 JavaDoc[] users = SERealmUserHelper.getUsers();
52
53                 Hashtable JavaDoc userInfo = new Hashtable JavaDoc();
54                 for (int i = 0; i < users.length; i++) {
55                     String JavaDoc currentUser = users[i];
56                     userInfo.put(currentUser, SERealmUserHelper
57                             .getPassword(currentUser.toString()));
58                 }
59
60                 String JavaDoc 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 JavaDoc 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 JavaDoc 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 JavaDoc {
109         String JavaDoc action = actionRequest.getParameter("action").trim();
110         String JavaDoc cancel = actionRequest.getParameter("cancel");
111         String JavaDoc currAction = "";
112         if (cancel != null) {
113             action = "";
114         }
115         String JavaDoc user = actionRequest.getParameter("userId");
116         String JavaDoc password = actionRequest.getParameter("password");
117
118         try {
119             if ("delete".equals(action)) {
120                 SERealmUserHelper.deleteUser(user);
121                 String JavaDoc[] groups = SERealmGroupHelper.getGroups();
122                 for (int i = 0; i < groups.length; i++) {
123                     String JavaDoc currentGroup = groups[i];
124                     if (SERealmGroupHelper.isGroupMember(currentGroup, user)) {
125                         Collection JavaDoc list = SERealmGroupHelper.getUsers(currentGroup);
126                         list.remove(user);
127                         String JavaDoc[] groupUsers = (String JavaDoc[]) list.toArray(new String JavaDoc[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 JavaDoc 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 JavaDoc e) {
150             actionResponse.setRenderParameter("message",
151                     "Error encountered in SEUsersPortlet. Cause: "
152                             + e.getMessage());
153         }
154     }
155
156 }
157
Popular Tags