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.commons.beanutils.converters.*; 32 import org.apache.struts.action.*; 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 RemoveIssueAttachmentAction extends ITrackerAction { 43 44 public RemoveIssueAttachmentAction() { 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 54 if(! hasPermission(UserUtilities.PERMISSION_USER_ADMIN, request, response)) { 55 return mapping.findForward("unauthorized"); 56 } 57 58 try { 59 InitialContext ic = new InitialContext(); 60 61 Object ihRef = ic.lookup("java:comp/env/" + IssueHandler.JNDI_NAME); 62 IssueHandlerHome ihHome = (IssueHandlerHome) PortableRemoteObject.narrow(ihRef, IssueHandlerHome.class); 63 IssueHandler ih = ihHome.create(); 64 65 try { 66 Integer attachmentId = new Integer ((request.getParameter("id") == null ? "-1" : request.getParameter("id"))); 67 IssueAttachmentModel attachment = ih.getIssueAttachment(attachmentId); 68 69 if(attachment != null) { 70 Object scRef = ic.lookup("java:comp/env/" + SystemConfiguration.JNDI_NAME); 71 SystemConfigurationHome scHome = (SystemConfigurationHome) PortableRemoteObject.narrow(scRef, SystemConfigurationHome.class); 72 SystemConfiguration sc = scHome.create(); 73 74 File attachmentFile = new File( sc.getProperty("attachment_dir") + File.separator + attachment.getFileName()); 75 attachmentFile.delete(); 76 77 ih.removeIssueAttachment(attachmentId); 78 } 79 } catch(NumberFormatException nfe) { 80 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.removeattachment")); 81 if(Logger.isLoggingDebug()) { 82 Logger.logDebug("Invalid attachmentId " + request.getParameter("id") + " specified."); 83 } 84 } 85 } catch(Exception e) { 86 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.system")); 87 } 88 89 if(! errors.isEmpty()) { 90 saveErrors(request, errors); 91 } 92 return mapping.findForward("listattachments"); 93 } 94 95 } 96 | Popular Tags |