001: /*
002: * $Header: /export/home/cvsroot/MyPersonalizerRepository/MyPersonalizer/Subsystems/Admin/Sources/es/udc/mypersonalizer/admin/http/controller/actions/groupmgnt/AddUserToGroupAction.java,v 1.1.1.1 2004/03/25 12:08:38 fbellas Exp $
003: * $Revision: 1.1.1.1 $
004: * $Date: 2004/03/25 12:08:38 $
005: *
006: * =============================================================================
007: *
008: * Copyright (c) 2003, The MyPersonalizer Development Group
009: * (http://www.tic.udc.es/~fbellas/mypersonalizer/index.html) at
010: * University Of A Coruna
011: * All rights reserved.
012: *
013: * Redistribution and use in source and binary forms, with or without
014: * modification, are permitted provided that the following conditions are met:
015: *
016: * - Redistributions of source code must retain the above copyright notice,
017: * this list of conditions and the following disclaimer.
018: *
019: * - Redistributions in binary form must reproduce the above copyright notice,
020: * this list of conditions and the following disclaimer in the documentation
021: * and/or other materials provided with the distribution.
022: *
023: * - Neither the name of the University Of A Coruna nor the names of its
024: * contributors may be used to endorse or promote products derived from
025: * this software without specific prior written permission.
026: *
027: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
028: * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
029: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
030: * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
031: * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
032: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
033: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
034: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
035: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
036: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
037: * POSSIBILITY OF SUCH DAMAGE.
038: *
039: */
040:
041: package es.udc.mypersonalizer.admin.http.controller.actions.groupmgnt;
042:
043: import javax.servlet.http.HttpServletRequest;
044: import javax.servlet.http.HttpServletResponse;
045:
046: import org.apache.struts.action.ActionForm;
047: import org.apache.struts.action.ActionMapping;
048: import org.apache.struts.action.ActionForward;
049:
050: import es.udc.mypersonalizer.kernel.model.repository.interfaces.UserAlreadyExistsInGroupException;
051: import es.udc.mypersonalizer.kernel.controller.actions.DefaultAction;
052: import es.udc.mypersonalizer.kernel.model.actions.ActionProcessorSingleton;
053:
054: import es.udc.mypersonalizer.admin.model.types.usergroupmgnt.AddUserToGroupEvent;
055: import es.udc.mypersonalizer.admin.http.view.actionforms.groupmgnt.AddUserToGroupForm;
056: import es.udc.mypersonalizer.admin.http.controller.actions.groupmgnt.util.GroupsManagementActionsHelper;
057:
058: /**
059: * This controller action adds an user to a group. For this purpose it uses
060: * the {@link AddUserToGroupForm} <code>ActionForm</code>.
061: * <p>
062: * After the above, it redirects to <code>GroupMembers<code> action.
063: *
064: * @author Abel Iago Toral Quiroga
065: * @since 1.0
066: */
067: public class AddUserToGroupAction extends DefaultAction {
068:
069: protected ActionForward doExecute(ActionMapping mapping,
070: ActionForm form, HttpServletRequest request,
071: HttpServletResponse response) throws Exception {
072:
073: /* Get parameters : groupId, loginName */
074: AddUserToGroupForm frm = (AddUserToGroupForm) form;
075: Long groupId = frm.getGroupId();
076: String loginName = frm.getLoginName();
077:
078: /* Add the user to the group */
079: boolean error = false;
080: try {
081: AddUserToGroupEvent addUserToGroupEvent = new AddUserToGroupEvent(
082: loginName, groupId);
083: ActionProcessorSingleton.getInstance().execute(
084: "AddUserToGroupAction", addUserToGroupEvent);
085: } catch (UserAlreadyExistsInGroupException e) {
086: error = true;
087: }
088:
089: /* Do forward */
090: return getReturnForwardToGroupMembers(mapping, frm, error);
091: }
092:
093: /**
094: * Creates an <code>ActionForward</code> to the action
095: * <code>GroupMembersAction</code> using
096: * <code>GroupsManagementActionsHelper.getForwardToGroupMembers()</code>
097: * and adding (if needed) the userAlreadyExistsInGroupError parameter.
098: * @param mapping the mapping for this action.
099: * @param frm the ActionForm used by this action with all needed
100: * parameters.
101: * @param error true if tried to add a user to agroup where he was
102: * already assigned.
103: */
104: private ActionForward getReturnForwardToGroupMembers(
105: ActionMapping mapping, AddUserToGroupForm frm, boolean error) {
106:
107: ActionForward forwardWithParameters = GroupsManagementActionsHelper
108: .getReturnForwardToGroupMembers(mapping, frm
109: .getGroupId(), frm.getStartIndex(), frm
110: .getCount(), frm.getAllUsersStartIndex(), frm
111: .getUsersAssignedToGroupStartIndex(), frm
112: .getUsersCount());
113: /* Add error parameter ? */
114: if (error) {
115: String urlPath = forwardWithParameters.getPath();
116: urlPath += "&userAlreadyExistsInGroupError=true";
117: forwardWithParameters = new ActionForward(urlPath,
118: forwardWithParameters.getRedirect());
119: }
120:
121: /* Update and return forward */
122: return forwardWithParameters;
123: }
124: }
|