KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > blandware > atleap > webapp > action > core > user > CallAssignUserRolesAndGroupsAction


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

16 package com.blandware.atleap.webapp.action.core.user;
17
18 import com.blandware.atleap.common.Constants;
19 import com.blandware.atleap.model.core.User;
20 import com.blandware.atleap.service.core.GroupManager;
21 import com.blandware.atleap.service.core.RoleManager;
22 import com.blandware.atleap.service.core.UserManager;
23 import com.blandware.atleap.webapp.action.core.BaseAction;
24 import com.blandware.atleap.webapp.form.core.SelectRolesAndGroupsForm;
25 import com.blandware.atleap.webapp.util.core.WebappConstants;
26 import org.apache.struts.action.*;
27
28 import javax.servlet.http.HttpServletRequest JavaDoc;
29 import javax.servlet.http.HttpServletResponse JavaDoc;
30 import java.util.ArrayList JavaDoc;
31 import java.util.List JavaDoc;
32
33 /**
34  * <p>Returns page with two lists to reassign roles to user and two lists to
35  * reassign groups to user
36  * </p>
37  * <p><a HREF="CallAssignUserRolesAndGroupsAction.java.htm"><i>View Source</i></a></p>
38  * <p/>
39  *
40  * @author Sergey Zubtcovskii <a HREF="mailto:sergey.zubtcovskii@blandware.com">&lt;sergey.zubtcovskii@blandware.com&gt;</a>
41  * @version $Revision: 1.4 $ $Date: 2006/03/16 11:09:41 $
42  * @struts.action path="/core/user/callAssignRolesAndGroups"
43  * name="selectRolesAndGroupsForm"
44  * validate="false"
45  * roles="core-user-assignRolesAndGroups"
46  * @struts.action-forward name="assignRolesAndGroups"
47  * path=".core.user.assignRolesAndGroups"
48  * @struts.action-forward name="listUsers"
49  * path="/core/user/list.do"
50  * redirect="true"
51  */

52 public final class CallAssignUserRolesAndGroupsAction extends BaseAction {
53     /**
54      * @param mapping The ActionMapping used to select this instance
55      * @param form The optional ActionForm bean for this request (if any)
56      * @param request The HTTP request we are proceeding
57      * @param response The HTTP response we are creating
58      * @return an ActionForward instance describing where and how
59      * control should be forwarded, or null if response
60      * has already been completed
61      */

62     public ActionForward execute(ActionMapping mapping, ActionForm form,
63                                  HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws Exception JavaDoc {
64
65         String JavaDoc userName = null;
66         if ( request.getParameter("userName") != null ) {
67             userName = request.getParameter("userName");
68         } else if ( request.getAttribute(WebappConstants.USER_NAME_KEY) != null ) {
69             userName = (String JavaDoc) request.getAttribute(WebappConstants.USER_NAME_KEY);
70         } else {
71             if ( log.isWarnEnabled() ) {
72                 log.warn("Missing user name. Returning to list...");
73             }
74             return mapping.findForward("listUsers");
75         }
76
77         SelectRolesAndGroupsForm selectRolesAndGroupsForm = (SelectRolesAndGroupsForm) form;
78         UserManager userManager = (UserManager) getBean(Constants.USER_MANAGER_BEAN);
79         User user = userManager.retrieveUser(userName);
80
81         if ( user == null ) {
82             // user not found. it might be deleted by someone else
83
ActionMessages errors = new ActionMessages();
84             errors.add("userNotFound", new ActionMessage("core.user.errors.notFound"));
85             saveErrors(request, errors);
86             return mapping.findForward("listUsers");
87         }
88
89         selectRolesAndGroupsForm.setVersion(user.getVersion().toString());
90
91         List JavaDoc userRoles = new ArrayList JavaDoc(user.getFreeRoles());
92
93         RoleManager roleManager = (RoleManager) getBean(Constants.ROLE_MANAGER_BEAN);
94         List JavaDoc availableRoles = new ArrayList JavaDoc(roleManager.listRoles(null));
95         List JavaDoc allRoles = new ArrayList JavaDoc(availableRoles);
96         availableRoles.removeAll(userRoles);
97
98         selectRolesAndGroupsForm.setAvailableRolesList(availableRoles);
99         selectRolesAndGroupsForm.setSelectedRolesList(userRoles);
100
101         List JavaDoc userGroups = new ArrayList JavaDoc(user.getGroups());
102
103         GroupManager groupManager = (GroupManager) getBean(Constants.GROUP_MANAGER_BEAN);
104         List JavaDoc availableGroups = new ArrayList JavaDoc(groupManager.listGroups(null));
105         List JavaDoc allGroups = new ArrayList JavaDoc(availableGroups);
106         availableGroups.removeAll(userGroups);
107
108         selectRolesAndGroupsForm.setAvailableGroupsList(availableGroups);
109         selectRolesAndGroupsForm.setSelectedGroupsList(userGroups);
110
111         request.getSession().setAttribute(WebappConstants.USER_NAME_KEY, user.getName());
112         request.setAttribute("allRoles", allRoles);
113         request.setAttribute("allGroups", allGroups);
114
115         // save transaction token in request
116
saveToken(request);
117         return mapping.findForward("assignRolesAndGroups");
118     }
119 }
Popular Tags