1
2
3
4
5
6
7 package org.itracker.web.actions.admin.workflow;
8
9
10 import java.io.IOException;
11 import java.lang.reflect.InvocationTargetException;
12 import java.util.Map;
13 import java.util.Set;
14
15 import javax.servlet.ServletException;
16 import javax.servlet.http.HttpServletRequest;
17 import javax.servlet.http.HttpServletResponse;
18 import javax.servlet.http.HttpSession;
19
20 import org.apache.commons.beanutils.PropertyUtils;
21 import org.apache.log4j.Logger;
22 import org.apache.struts.action.ActionForm;
23 import org.apache.struts.action.ActionForward;
24 import org.apache.struts.action.ActionMapping;
25 import org.apache.struts.action.ActionMessage;
26 import org.apache.struts.action.ActionMessages;
27 import org.itracker.model.PermissionType;
28 import org.itracker.services.util.UserUtilities;
29 import org.itracker.web.actions.base.ItrackerBaseAction;
30
31
32
33
34
35
36
37
38
39
40
41 public class RemoveWorkflowScriptAction extends ItrackerBaseAction {
42 private static final Logger log = Logger.getLogger(RemoveWorkflowScriptAction.class);
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
58 ActionMessages errors = new ActionMessages();
59 ActionForward fw = mapping.findForward("error");
60
61
62
63 HttpSession session = request.getSession(true);
64 Map<Integer, Set<PermissionType>> userPermissionsMap = getUserPermissions(session);
65 if(! UserUtilities.hasPermission(userPermissionsMap, UserUtilities.PERMISSION_USER_ADMIN)) {
66 return mapping.findForward("unauthorized");
67 }
68 try {
69
70
71 Integer scriptId = (Integer) PropertyUtils.getSimpleProperty(form, "id");
72
73
74 this.getITrackerServices().getConfigurationService()
75 .removeWorkflowScript(scriptId);
76
77
78 fw = mapping.findForward( "listworkflow" );
79
80 } catch (InvocationTargetException ex) {
81 log.error( ex.getMessage(), ex );
82 errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("itracker.web.error.invalidworkflowscript"));
83 } catch (NoSuchMethodException ex) {
84 log.error( ex.getMessage(), ex );
85 errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("itracker.web.error.invalidworkflowscript"));
86 } catch (IllegalAccessException ex) {
87 log.error( ex.getMessage(), ex );
88 errors.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("itracker.web.error.invalidworkflowscript"));
89 }
90
91 if(! errors.isEmpty()) {
92 saveErrors(request, errors);
93 }
94 return fw;
95 }
96 }