1 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 import org.apache.struts.validator.*; 35 36 import cowsultants.itracker.ejb.client.exceptions.*; 37 import cowsultants.itracker.ejb.client.interfaces.*; 38 import cowsultants.itracker.ejb.client.models.*; 39 import cowsultants.itracker.ejb.client.util.*; 40 import cowsultants.itracker.web.scheduler.*; 41 import cowsultants.itracker.web.util.*; 42 43 44 public class EditReportFormAction extends ITrackerAction { 45 46 public EditReportFormAction() { 47 } 48 49 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 50 ActionErrors errors = new ActionErrors(); 51 52 if(! isLoggedIn(request, response)) { 53 return mapping.findForward("login"); 54 } 55 56 try { 57 InitialContext ic = new InitialContext(); 58 59 Object rhRef = ic.lookup("java:comp/env/" + ReportHandler.JNDI_NAME); 60 ReportHandlerHome rhHome = (ReportHandlerHome) PortableRemoteObject.narrow(rhRef, ReportHandlerHome.class); 61 ReportHandler rh = rhHome.create(); 62 63 HttpSession session = request.getSession(true); 64 HashMap userPermissions = (HashMap) session.getAttribute(Constants.PERMISSIONS_KEY); 65 UserModel user = (UserModel) session.getAttribute(Constants.USER_KEY); 66 if(! UserUtilities.hasPermission(userPermissions, UserUtilities.PERMISSION_USER_ADMIN)) { 67 return mapping.findForward("unauthorized"); 68 } 69 70 71 ReportModel report = null; 72 73 DynaValidatorForm reportForm = (DynaValidatorForm) form; 74 if(reportForm == null) { 75 reportForm = new DynaValidatorForm(); 76 } 77 78 String action = (String ) request.getParameter("action"); 79 if("create".equals(action)) { 80 report = new ReportModel(); 81 report.setId(new Integer (-1)); 82 reportForm.set("action", "create"); 83 reportForm.set("id", report.getId()); 84 } else if ("update".equals(action)) { 85 Integer reportId = (Integer ) PropertyUtils.getSimpleProperty(form, "id"); 86 report = rh.getReport(reportId); 87 if(report == null) { 88 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidreport")); 89 } else { 90 reportForm.set("action", "update"); 91 reportForm.set("id", report.getId()); 92 reportForm.set("name", report.getName()); 93 reportForm.set("nameKey", report.getNameKey()); 94 reportForm.set("description", report.getDescription()); 95 reportForm.set("reportType", new Integer (report.getReportType())); 96 reportForm.set("dataType", new Integer (report.getDataType())); 97 reportForm.set("className", report.getClassName()); 98 } 99 } else { 100 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidaction")); 101 } 102 103 if(errors.isEmpty()) { 104 request.setAttribute("reportForm", reportForm); 105 session.setAttribute(Constants.REPORT_KEY, report); 106 saveToken(request); 107 return mapping.getInputForward(); 108 } 109 } catch(Exception e) { 110 Logger.logError("Exception while creating edit report form.", e); 111 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.system")); 112 } 113 114 if(! errors.isEmpty()) { 115 saveErrors(request, errors); 116 } 117 118 return mapping.findForward("error"); 119 } 120 121 } 122 | Popular Tags |