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.util.*; 33 34 import cowsultants.itracker.ejb.client.exceptions.*; 35 import cowsultants.itracker.ejb.client.interfaces.*; 36 import cowsultants.itracker.ejb.client.models.*; 37 import cowsultants.itracker.ejb.client.util.*; 38 import cowsultants.itracker.web.scheduler.*; 39 import cowsultants.itracker.web.util.*; 40 41 42 public class RemoveTaskAction extends ITrackerAction { 43 44 public RemoveTaskAction() { 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 try { 55 HttpSession session = request.getSession(true); 56 HashMap userPermissions = (HashMap) session.getAttribute(Constants.PERMISSIONS_KEY); 57 if(! UserUtilities.hasPermission(userPermissions, UserUtilities.PERMISSION_USER_ADMIN)) { 58 return mapping.findForward("unauthorized"); 59 } 60 61 InitialContext ic = new InitialContext(); 62 63 Object shRef = ic.lookup("java:comp/env/" + SchedulerHandler.JNDI_NAME); 64 SchedulerHandlerHome shHome = (SchedulerHandlerHome) PortableRemoteObject.narrow(shRef, SchedulerHandlerHome.class); 65 SchedulerHandler sh = shHome.create(); 66 67 Integer taskId = new Integer ((request.getParameter("id") == null ? "-1" : request.getParameter("id"))); 68 if(taskId.intValue() > 0) { 69 sh.removeTask(taskId); 70 Scheduler.removeTask(taskId.intValue()); 71 return mapping.findForward("listtasks"); 72 } 73 } catch(NumberFormatException nfe) { 74 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.invalidtask")); 75 Logger.logDebug("Invalid taskId " + request.getParameter("id") + " specified."); 76 } catch(Exception e) { 77 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("itracker.web.error.system")); 78 Logger.logError("System Error.", e); 79 } 80 if(! errors.isEmpty()) { 81 saveErrors(request, errors); 82 } 83 return mapping.findForward("error"); 84 } 85 86 } 87 | Popular Tags |