KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > cowsultants > itracker > web > actions > EditVersionAction


1 /*
2  * This software was designed and created by Jason Carroll.
3  * Copyright (c) 2002, 2003, 2004 Jason Carroll.
4  * The author can be reached at jcarroll@cowsultants.com
5  * ITracker website: http://www.cowsultants.com
6  * ITracker forums: http://www.cowsultants.com/phpBB/index.php
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it only under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  */

18
19 package cowsultants.itracker.web.actions;
20
21 import java.io.*;
22 import java.rmi.*;
23 import java.util.*;
24 import javax.ejb.*;
25 import javax.rmi.*;
26 import javax.naming.*;
27 import javax.servlet.*;
28 import javax.servlet.http.*;
29
30 import org.apache.commons.beanutils.*;
31 import org.apache.struts.action.*;
32 import org.apache.struts.upload.*;
33 import org.apache.struts.util.*;
34
35 import cowsultants.itracker.ejb.client.exceptions.*;
36 import cowsultants.itracker.ejb.client.interfaces.*;
37 import cowsultants.itracker.ejb.client.models.*;
38 import cowsultants.itracker.ejb.client.util.*;
39 import cowsultants.itracker.web.util.*;
40
41
42 public class EditVersionAction extends ITrackerAction {
43
44     public EditVersionAction() {
45     }
46
47     public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
48         ActionErrors errors = new ActionErrors();
49
50         if(! isLoggedIn(request, response)) {
51             return mapping.findForward("login");
52         }
53         if(! isTokenValid(request)) {
54             Logger.logDebug("Invalid request token while editing version.");
55             return mapping.findForward("listprojectsadmin");
56         }
57         resetToken(request);
58
59         VersionModel version = null;
60         ProjectModel project = null;
61         try {
62             InitialContext ic = new InitialContext();
63
64             Object JavaDoc phRef = ic.lookup("java:comp/env/" + ProjectHandler.JNDI_NAME);
65             ProjectHandlerHome phHome = (ProjectHandlerHome) PortableRemoteObject.narrow(phRef, ProjectHandlerHome.class);
66             ProjectHandler ph = phHome.create();
67
68             HttpSession session = request.getSession(true);
69             HashMap userPermissions = (HashMap) session.getAttribute(Constants.PERMISSIONS_KEY);
70             UserModel user = (UserModel) session.getAttribute(Constants.USER_KEY);
71
72             version = new VersionModel();
73             version.setId((Integer JavaDoc) PropertyUtils.getSimpleProperty(form, "id"));
74             version.setDescription((String JavaDoc) PropertyUtils.getSimpleProperty(form, "description"));
75             version.setVersionInfo((String JavaDoc) PropertyUtils.getSimpleProperty(form, "number"));
76
77             Integer JavaDoc projectId = (Integer JavaDoc) PropertyUtils.getSimpleProperty(form, "pid");
78             if(projectId == null) {
79                 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidproject"));
80             } else {
81                 project = ph.getProject(projectId);
82                 if(project == null) {
83                     errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidproject"));
84                 } else if(! UserUtilities.hasPermission(userPermissions, project.getId(), UserUtilities.PERMISSION_PRODUCT_ADMIN)) {
85                     return mapping.findForward("unauthorized");
86                 } else {
87                     String JavaDoc action = (String JavaDoc) request.getParameter("action");
88                     if("create".equals(action)) {
89                         version = ph.addProjectVersion(project.getId(), version);
90                     } else if ("update".equals(action)) {
91                         version.setProjectId(project.getId());
92                         version = ph.updateProjectVersion(version);
93                     }
94                     session.removeAttribute(Constants.VERSION_KEY);
95                     return new ActionForward(mapping.findForward("editproject").getPath() + "?id=" + project.getId() +"&action=update");
96                 }
97             }
98         } catch(Exception JavaDoc e) {
99             Logger.logError("Exception processing form data", e);
100             errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.system"));
101         }
102
103         if(! errors.isEmpty()) {
104             saveErrors(request, errors);
105         }
106         return mapping.findForward("error");
107     }
108
109 }
110   
Popular Tags