]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/admin/support/SupportEnterTicketForm.java
upd: enforce a more strict Form call pattern.
[gigi.git] / src / org / cacert / gigi / pages / admin / support / SupportEnterTicketForm.java
index f7ddea07d3e9a1af09fb132efc129c372a78fb64..e2e30a93d153169fced9f5858167be37e48b0510 100644 (file)
@@ -5,6 +5,7 @@ import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 
+import org.cacert.gigi.Gigi;
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Form;
@@ -14,33 +15,29 @@ import org.cacert.gigi.util.AuthorizationContext;
 
 public class SupportEnterTicketForm extends Form {
 
-    private static Template t;
-
-    static {
-        t = new Template(SupportEnterTicketForm.class.getResource("SupportEnterTicketForm.templ"));
-    }
+    private static final Template t = new Template(SupportEnterTicketForm.class.getResource("SupportEnterTicketForm.templ"));
 
     public SupportEnterTicketForm(HttpServletRequest hsr) {
         super(hsr);
     }
 
     @Override
-    public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
+    public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
         if (req.getParameter("setTicket") != null) {
             // [asdmASDM]\d{8}\.\d+
             String ticket = req.getParameter("ticketno");
             if (ticket.matches("[asdmASDM]\\d{8}\\.\\d+")) {
                 AuthorizationContext ac = LoginPage.getAuthorizationContext(req);
-                ac.setSupporterTicketId(ticket);
-                return true;
+                req.getSession().setAttribute(Gigi.AUTH_CONTEXT, new AuthorizationContext(ac.getActor(), ticket));
+                return new RedirectResult(SupportEnterTicketPage.PATH);
             }
-            return false;
+            throw new GigiApiException("Ticket format malformed");
         } else if (req.getParameter("deleteTicket") != null) {
             AuthorizationContext ac = LoginPage.getAuthorizationContext(req);
-            ac.setSupporterTicketId(null);
-            return true;
+            req.getSession().setAttribute(Gigi.AUTH_CONTEXT, new AuthorizationContext(ac.getActor(), ac.getActor()));
+            return new RedirectResult(SupportEnterTicketPage.PATH);
         }
-        return false;
+        throw new GigiApiException("No valid action given.");
     }
 
     @Override