]> WPIA git - gigi.git/blobdiff - src/club/wpia/gigi/pages/account/MyDetailsForm.java
add: configuration of CommunityCA
[gigi.git] / src / club / wpia / gigi / pages / account / MyDetailsForm.java
index 4af7c94aa01ba7ee13d4088d9f6d89a202cdeb4c..0f775b9d2b4b97d680e91cb901e84f6a36e2e7ec 100644 (file)
@@ -7,6 +7,7 @@ import java.util.Set;
 import javax.servlet.http.HttpServletRequest;
 
 import club.wpia.gigi.GigiApiException;
+import club.wpia.gigi.dbObjects.Contract;
 import club.wpia.gigi.dbObjects.Group;
 import club.wpia.gigi.dbObjects.Name;
 import club.wpia.gigi.dbObjects.User;
@@ -14,15 +15,16 @@ import club.wpia.gigi.localisation.Language;
 import club.wpia.gigi.output.ArrayIterable;
 import club.wpia.gigi.output.CountrySelector;
 import club.wpia.gigi.output.DateSelector;
-import club.wpia.gigi.output.GroupIterator;
+import club.wpia.gigi.output.GroupList;
 import club.wpia.gigi.output.GroupSelector;
 import club.wpia.gigi.output.NameInput;
 import club.wpia.gigi.output.template.Form;
 import club.wpia.gigi.output.template.Template;
+import club.wpia.gigi.util.ServerConstants;
 
 public class MyDetailsForm extends Form {
 
-    private static final Template assured = new Template(MyDetails.class.getResource("MyDetailsFormAssured.templ"));
+    private static final Template verified = new Template(MyDetails.class.getResource("MyDetailsFormVerified.templ"));
 
     private static final Template templ = new Template(MyDetailsForm.class.getResource("MyDetailsForm.templ"));
 
@@ -30,6 +32,8 @@ public class MyDetailsForm extends Form {
 
     private static final Template roles = new Template(MyDetailsForm.class.getResource("MyDetailsRoles.templ"));
 
+    private static final Template contracts = new Template(MyDetailsForm.class.getResource("MyDetailsContracts.templ"));
+
     private User target;
 
     private DateSelector ds;
@@ -110,6 +114,17 @@ public class MyDetailsForm extends Form {
                     target.revokeGroup(target, toMod);
                 }
                 return new RedirectResult(MyDetails.PATH);
+            } else if ("viewContract".equals(action)) {
+                return new RedirectResult(MyContracts.PATH);
+            } else if ("signContract".equals(action)) {
+                new Contract(target, Contract.ContractType.RA_AGENT_CONTRACT);
+                return new RedirectResult(MyDetails.PATH);
+            } else if ("revokeContract".equals(action)) {
+                Contract c = Contract.getRAAgentContractByUser(target);
+                if (c != null) {
+                    c.revokeContract();
+                }
+                return new RedirectResult(MyDetails.PATH);
             } else {
                 throw new GigiApiException("Invalid action.");
             }
@@ -140,7 +155,7 @@ public class MyDetailsForm extends Form {
                 }
                 vars.put("name", t);
                 vars.put("id", t.getId());
-                vars.put("npoints", Integer.toString(t.getAssurancePoints()));
+                vars.put("npoints", Integer.toString(t.getVerificationPoints()));
             }
 
         });
@@ -148,19 +163,26 @@ public class MyDetailsForm extends Form {
         names.output(out, l, vars);
 
         vars.put("residenceCountry", cs);
-        if (target.getReceivedAssurances().length == 0) {
+        if (target.getReceivedVerifications().length == 0) {
             vars.put("DoB", ds);
             templ.output(out, l, vars);
         } else {
             vars.put("DoB", target.getDoB());
-            assured.output(out, l, vars);
+            verified.output(out, l, vars);
         }
 
         final Set<Group> gr = target.getGroups();
-        vars.put("support-groups", new GroupIterator(gr.iterator(), true));
-        vars.put("groups", new GroupIterator(gr.iterator(), false));
+        vars.put("support-groups", new GroupList(gr, true));
+        vars.put("groups", new GroupList(gr, false));
         vars.put("groupSelector", selectedGroup);
         roles.output(out, l, vars);
+
+        if ( !ServerConstants.isCommunityCA()) {
+            boolean hasSignedContract = Contract.hasSignedContract(target, Contract.ContractType.RA_AGENT_CONTRACT);
+            vars.put("contractsign", hasSignedContract ? "disabled" : "");
+            vars.put("contractrevoke", hasSignedContract ? "" : "disabled");
+            contracts.output(out, l, vars);
+        }
     }
 
 }