]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/pages/orga/CreateOrgForm.java
Merge "Update notes about password security"
[gigi.git] / src / org / cacert / gigi / pages / orga / CreateOrgForm.java
index df5d4fe272292e7c30d0bb23bc041be9f8ba0a8d..5e6b35a2a99989e49be3d1a5eebad307a0a31884 100644 (file)
@@ -8,7 +8,7 @@ import javax.servlet.http.HttpServletRequest;
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Organisation;
 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.Template;
 import org.cacert.gigi.pages.LoginPage;
 
@@ -26,32 +26,75 @@ public class CreateOrgForm extends Form {
 
     private String l = "";
 
+    private String email = "";
+
+    private String optionalName = "";
+
+    private String postalAddress = "";
+
+    private boolean isEdit = false;
+
     public CreateOrgForm(HttpServletRequest hsr) {
         super(hsr);
     }
 
     public CreateOrgForm(HttpServletRequest hsr, Organisation t) {
         super(hsr);
+        isEdit = true;
         result = t;
         o = t.getName();
         c = t.getState();
         st = t.getProvince();
         l = t.getCity();
+        email = t.getContactEmail();
+        optionalName = t.getOptionalName();
+        postalAddress = t.getPostalAddress();
     }
 
     @Override
     public boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException {
+        String action = req.getParameter("action");
+        if (action == null) {
+            return false;
+        }
+        if (action.equals("new")) {
+            o = req.getParameter("O");
+            c = req.getParameter("C");
+            st = req.getParameter("ST");
+            l = req.getParameter("L");
+            email = req.getParameter("contact");
+            optionalName = req.getParameter("optionalName");
+            postalAddress = req.getParameter("postalAddress");
+
+            Organisation ne = new Organisation(o, c, st, l, email, optionalName, postalAddress, LoginPage.getUser(req));
+            result = ne;
+            return true;
+        } else if (action.equals("updateOrganisationData")) {
+            updateOrganisationData(out, req);
+            return true;
+        } else if (action.equals("updateCertificateData")) {
+            updateCertificateData(out, req);
+            return true;
+        }
+
+        return false;
+    }
+
+    private void updateOrganisationData(PrintWriter out, HttpServletRequest req) throws GigiApiException {
+        email = req.getParameter("contact");
+        optionalName = req.getParameter("optionalName");
+        postalAddress = req.getParameter("postalAddress");
+
+        result.updateOrgData(email, optionalName, postalAddress);
+    }
+
+    private void updateCertificateData(PrintWriter out, HttpServletRequest req) throws GigiApiException {
         o = req.getParameter("O");
         c = req.getParameter("C");
         st = req.getParameter("ST");
         l = req.getParameter("L");
-        if (result != null) {
-            result.update(o, c, st, l);
-            return true;
-        }
-        Organisation ne = new Organisation(o, c, st, l, LoginPage.getUser(req));
-        result = ne;
-        return true;
+
+        result.updateCertData(o, c, st, l);
     }
 
     public Organisation getResult() {
@@ -64,6 +107,12 @@ public class CreateOrgForm extends Form {
         vars.put("C", c);
         vars.put("ST", st);
         vars.put("L", this.l);
+        vars.put("email", email);
+        vars.put("optionalName", optionalName);
+        vars.put("postalAddress", postalAddress);
+        if (isEdit) {
+            vars.put("edit", true);
+        }
         t.output(out, l, vars);
     }
 }