]> WPIA git - gigi.git/commitdiff
Fix: send domain ping reconfigurations to correct form
authorFelix Dörre <felix@dogcraft.de>
Sun, 15 Mar 2015 12:22:48 +0000 (13:22 +0100)
committerFelix Dörre <felix@dogcraft.de>
Sat, 21 Mar 2015 13:57:21 +0000 (14:57 +0100)
src/org/cacert/gigi/dbObjects/DomainPingConfiguration.java
src/org/cacert/gigi/pages/account/domain/DomainOverview.java
src/org/cacert/gigi/pages/account/domain/DomainPinglogForm.java

index ae0246d0308308a672723c7397e785c9efda70c8..c6d053af05136d8b22489b116cd76baf881e9fee 100644 (file)
@@ -96,6 +96,6 @@ public class DomainPingConfiguration implements IdCachable {
         }
         Map<String, Object> data = new HashMap<String, Object>();
         data.put("data", new Date(lastExecution.getTime() + 5 * 60 * 1000));
-        throw new GigiApiException(new Scope(new SprintfCommand("Reping is only allowed after 5 minutes, yours end at {0}.", Arrays.asList("$data")), data));
+        throw new GigiApiException(new Scope(new SprintfCommand("Reping is only allowed after 5 minutes, yours end at {0}.", Arrays.asList("${data}")), data));
     }
 }
index 4aa3df63ff28f49ae32b9cefc99b3184e464e21b..7a851c36ef106b15d34102efa58221cffae47614 100644 (file)
@@ -8,7 +8,6 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Domain;
-import org.cacert.gigi.dbObjects.DomainPingConfiguration;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.pages.Page;
@@ -62,26 +61,25 @@ public class DomainOverview extends Page {
 
     @Override
     public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {
-        User u = getUser(req);
         String pi = req.getPathInfo();
         if (pi.length() - PATH.length() > 0) {
-            int i = Integer.parseInt(pi.substring(PATH.length()));
-            Domain d = Domain.getById(i);
-            if (u.getId() != d.getOwner().getId()) {
-                return;
-            }
-            int reping = Integer.parseInt(req.getParameter("configId"));
-            DomainPingConfiguration dpc = DomainPingConfiguration.getById(reping);
-            if (dpc.getTarget() != d) {
-                return;
-            }
             try {
-                dpc.requestReping();
+                if (req.getParameter("configId") != null) {
+                    if ( !Form.getForm(req, DomainPinglogForm.class).submit(resp.getWriter(), req)) {
+                        // error?
+                    }
+
+                } else {
+                    if ( !Form.getForm(req, PingConfigForm.class).submit(resp.getWriter(), req)) {
+
+                    }
+                }
             } catch (GigiApiException e) {
                 e.format(resp.getWriter(), getLanguage(req));
                 return;
             }
-            resp.sendRedirect(PATH + i);
+
+            resp.sendRedirect(pi);
         }
         if (req.getParameter("adddomain") != null) {
             DomainAddForm f = Form.getForm(req, DomainAddForm.class);
index 4d4a36fee63b6cad3b3aa66afb64bc68a6cb240a..53f8cbd4a1093eb1c3671d15c312eac2ee4bfc2a 100644 (file)
@@ -9,10 +9,12 @@ import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Domain;
 import org.cacert.gigi.dbObjects.Domain.DomainPingExecution;
 import org.cacert.gigi.dbObjects.DomainPingConfiguration;
+import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.pages.Page;
 
 public class DomainPinglogForm extends Form {
 
@@ -27,7 +29,20 @@ public class DomainPinglogForm extends Form {
 
     @Override
     public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
-        return false;
+        User u = Page.getUser(req);
+
+        int i = Integer.parseInt(req.getPathInfo().substring(DomainOverview.PATH.length()));
+        Domain d = Domain.getById(i);
+        if (u.getId() != d.getOwner().getId()) {
+            return false;
+        }
+        int reping = Integer.parseInt(req.getParameter("configId"));
+        DomainPingConfiguration dpc = DomainPingConfiguration.getById(reping);
+        if (dpc.getTarget() != d) {
+            return false;
+        }
+        dpc.requestReping();
+        return true;
     }
 
     @Override