X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Fpages%2Faccount%2Fdomain%2FDomainPinglogForm.java;h=54209b20f34784894ee4b09e539d8daaa9b94e40;hb=474ccb03d08aff1d1f321bed9ea089bbe23943bf;hp=7c21b46ce73da822abc84829ba6c7dc89a3ddf30;hpb=e87392fd58e9152531a8d1cb34cb46e370062108;p=gigi.git diff --git a/src/org/cacert/gigi/pages/account/domain/DomainPinglogForm.java b/src/org/cacert/gigi/pages/account/domain/DomainPinglogForm.java index 7c21b46c..54209b20 100644 --- a/src/org/cacert/gigi/pages/account/domain/DomainPinglogForm.java +++ b/src/org/cacert/gigi/pages/account/domain/DomainPinglogForm.java @@ -6,17 +6,19 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import org.cacert.gigi.GigiApiException; +import org.cacert.gigi.dbObjects.CertificateOwner; import org.cacert.gigi.dbObjects.Domain; -import org.cacert.gigi.dbObjects.Domain.DomainPingExecution; import org.cacert.gigi.dbObjects.DomainPingConfiguration; +import org.cacert.gigi.dbObjects.DomainPingExecution; import org.cacert.gigi.localisation.Language; -import org.cacert.gigi.output.Form; +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.LoginPage; public class DomainPinglogForm extends Form { - static Template t = new Template(DomainPinglogForm.class.getResource("DomainPinglogForm.templ")); + private static final Template t = new Template(DomainPinglogForm.class.getResource("DomainPinglogForm.templ")); Domain target; @@ -26,8 +28,21 @@ public class DomainPinglogForm extends Form { } @Override - public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException { - return false; + public SubmissionResult submit(HttpServletRequest req) throws GigiApiException { + CertificateOwner u = LoginPage.getAuthorizationContext(req).getTarget(); + + int i = Integer.parseInt(req.getPathInfo().substring(DomainOverview.PATH.length() + 1)); + Domain d = Domain.getById(i); + if (u.getId() != d.getOwner().getId()) { + throw new GigiApiException("Error, owner mismatch."); + } + int reping = Integer.parseInt(req.getParameter("configId")); + DomainPingConfiguration dpc = DomainPingConfiguration.getById(reping); + if (dpc.getTarget() != d) { + throw new GigiApiException("Error, target mismatch."); + } + dpc.requestReping(); + return new RedirectResult(req.getPathInfo()); } @Override @@ -52,6 +67,7 @@ public class DomainPinglogForm extends Form { vars.put("state", pings[counter].getState()); vars.put("type", pings[counter].getType()); vars.put("config", pings[counter].getInfo()); + vars.put("date", pings[counter].getDate()); String ping3 = pings[counter].getResult(); if (ping3 == null) { vars.put("result", "");