]> WPIA git - gigi.git/blobdiff - src/club/wpia/gigi/pages/MainPage.java
fix: check if email is a valid pattern while account creation
[gigi.git] / src / club / wpia / gigi / pages / MainPage.java
index 882e3a1de07f52b049e25c684560f45a0de94cba..20e917917009d416a087aa50bbecc5ae4dd58758 100644 (file)
@@ -16,14 +16,17 @@ import club.wpia.gigi.dbObjects.Group;
 import club.wpia.gigi.dbObjects.Organisation;
 import club.wpia.gigi.dbObjects.User;
 import club.wpia.gigi.localisation.Language;
-import club.wpia.gigi.output.GroupIterator;
+import club.wpia.gigi.output.GroupList;
 import club.wpia.gigi.output.template.IterableDataset;
 import club.wpia.gigi.output.template.Template;
+import club.wpia.gigi.util.ServerConstants;
 
 public class MainPage extends Page {
 
     private static final Template notLog = new Template(MainPage.class.getResource("MainPageNotLogin.templ"));
 
+    private static final Template notLogCommunity = new Template(MainPage.class.getResource("MainPageNotLoginCommunity.templ"));
+
     public MainPage() {
         super("Home");
     }
@@ -35,12 +38,30 @@ public class MainPage extends Page {
             User u = LoginPage.getUser(req);
             vars.put("username", u.getPreferredName());
             final Set<Group> gr = u.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("ra-agent", u.canVerify());
             vars.put("vp", u.getVerificationPoints());
             vars.put("xp", u.getExperiencePoints());
 
+            vars.put("catsinfo", false);
+            if (u.canVerify() && !u.hasValidRAChallenge()) {
+                vars.put("catsinfo", true);
+                vars.put("catsra", true);
+            }
+            if (u.isInGroup(Group.SUPPORTER) && !u.hasValidSupportChallenge()) {
+                vars.put("catsinfo", true);
+                vars.put("catssupport", true);
+            }
+            if (u.isInGroup(Group.ORG_AGENT) && !u.hasValidOrgAgentChallenge()) {
+                vars.put("catsinfo", true);
+                vars.put("catsorgagent", true);
+            }
+            if (u.isInGroup(Group.TTP_AGENT) && !u.hasValidTTPAgentChallenge()) {
+                vars.put("catsinfo", true);
+                vars.put("catsttpagent", true);
+            }
+
             Certificate[] c = u.getCertificates(false);
             vars.put("c-no", c.length);
 
@@ -101,10 +122,27 @@ public class MainPage extends Page {
                 }
             });
             vars.put("hasorgs", !o.isEmpty());
+
+            if (u.isInGroup(Group.SUPPORTER) || u.isInGroup(Group.ORG_AGENT) || u.isInGroup(Group.TTP_AGENT) || u.canVerify() || !o.isEmpty()) {
+                vars.put("certlogin", LoginPage.getAuthorizationContext(req).isStronglyAuthenticated());
+                vars.put("certlogininfo", true);
+            } else {
+                vars.put("certlogininfo", false);
+            }
+
+            if ( !o.isEmpty() && !u.hasValidOrgAdminChallenge()) {
+                vars.put("catsinfo", true);
+                vars.put("catsorgadmin", true);
+            }
+
             getDefaultTemplate().output(resp.getWriter(), getLanguage(req), vars);
 
         } else {
-            notLog.output(resp.getWriter(), getLanguage(req), vars);
+            if (ServerConstants.isCommunityCA()) {
+                notLogCommunity.output(resp.getWriter(), getLanguage(req), vars);
+            } else {
+                notLog.output(resp.getWriter(), getLanguage(req), vars);
+            }
         }
     }