]> WPIA git - gigi.git/commitdiff
add: support should be able to see verifications of user
authorINOPIAE <m.maengel@inopiae.de>
Mon, 1 Aug 2016 07:57:09 +0000 (09:57 +0200)
committerFelix Dörre <felix@dogcraft.de>
Fri, 5 Aug 2016 09:49:34 +0000 (11:49 +0200)
fixes issue #44

Change-Id: Ief63aab5a4e952bd71b1e96731d387d66c9bebae

src/org/cacert/gigi/Gigi.java
src/org/cacert/gigi/output/AssurancesDisplay.java
src/org/cacert/gigi/output/AssurancesDisplay.templ
src/org/cacert/gigi/pages/admin/support/SupportUserDetailsForm.templ
src/org/cacert/gigi/pages/wot/MyPoints.java
src/org/cacert/gigi/pages/wot/MyPoints.templ

index 9e111ae78449c50b600e7d08294c41c5fa712716..6018849991e13ac454748d9b15b05e1a418b7da6 100644 (file)
@@ -145,7 +145,7 @@ public final class Gigi extends HttpServlet {
             putPage(DomainOverview.PATH + "*", new DomainOverview(), "Certificates");
 
             putPage(AssurePage.PATH + "/*", new AssurePage(), "Web of Trust");
             putPage(DomainOverview.PATH + "*", new DomainOverview(), "Certificates");
 
             putPage(AssurePage.PATH + "/*", new AssurePage(), "Web of Trust");
-            putPage(MyPoints.PATH, new MyPoints(), "Web of Trust");
+            putPage(MyPoints.PATH, new MyPoints(false), "Web of Trust");
             putPage(RequestTTPPage.PATH, new RequestTTPPage(), "Web of Trust");
 
             putPage(TTPAdminPage.PATH + "/*", new TTPAdminPage(), "Admin");
             putPage(RequestTTPPage.PATH, new RequestTTPPage(), "Web of Trust");
 
             putPage(TTPAdminPage.PATH + "/*", new TTPAdminPage(), "Admin");
@@ -170,6 +170,7 @@ public final class Gigi extends HttpServlet {
             putPage(UserTrainings.PATH, new UserTrainings(false), "My Account");
             putPage(MyDetails.PATH, new MyDetails(), "My Account");
             putPage(UserTrainings.SUPPORT_PATH, new UserTrainings(true), null);
             putPage(UserTrainings.PATH, new UserTrainings(false), "My Account");
             putPage(MyDetails.PATH, new MyDetails(), "My Account");
             putPage(UserTrainings.SUPPORT_PATH, new UserTrainings(true), null);
+            putPage(MyPoints.SUPPORT_PATH, new MyPoints(true), null);
 
             putPage(PasswordResetPage.PATH, new PasswordResetPage(), null);
             putPage(LogoutPage.PATH, new LogoutPage(), null);
 
             putPage(PasswordResetPage.PATH, new PasswordResetPage(), null);
             putPage(LogoutPage.PATH, new LogoutPage(), null);
index 8f0e6cabb54085287700e059db012ec1729aec35..f6d5362a62a4d0223f8a5a2122187616b5d20154 100644 (file)
@@ -18,9 +18,12 @@ public class AssurancesDisplay implements Outputable {
 
     public String assuranceArray;
 
 
     public String assuranceArray;
 
-    public AssurancesDisplay(String assuranceArray, boolean assurer) {
+    private boolean support;
+
+    public AssurancesDisplay(String assuranceArray, boolean assurer, boolean support) {
         this.assuranceArray = assuranceArray;
         this.assurer = assurer;
         this.assuranceArray = assuranceArray;
         this.assurer = assurer;
+        this.support = support;
     }
 
     @Override
     }
 
     @Override
@@ -43,13 +46,16 @@ public class AssurancesDisplay implements Outputable {
                     return false;
                 } else {
                     Assurance assurance = assurances[i];
                     return false;
                 } else {
                     Assurance assurance = assurances[i];
+                    vars.put("support", support);
                     vars.put("id", assurance.getId());
                     vars.put("method", assurance.getMethod());
                     Name to = assurance.getTo();
                     if (assurer) {
                     vars.put("id", assurance.getId());
                     vars.put("method", assurance.getMethod());
                     Name to = assurance.getTo();
                     if (assurer) {
+                        vars.put("linkId", assurance.getTo().getOwner().getId());
                         vars.put("verbVal", to == null ? l.getTranslation("applicant's name removed") : to.getOwner().getId());
                         vars.put("myName", to == null ? l.getTranslation("applicant's name removed") : to);
                     } else {
                         vars.put("verbVal", to == null ? l.getTranslation("applicant's name removed") : to.getOwner().getId());
                         vars.put("myName", to == null ? l.getTranslation("applicant's name removed") : to);
                     } else {
+                        vars.put("linkId", assurance.getFrom().getId());
                         vars.put("verbVal", assurance.getFrom().getPreferredName());
                         vars.put("myName", to == null ? l.getTranslation("own name removed") : to);
                     }
                         vars.put("verbVal", assurance.getFrom().getPreferredName());
                         vars.put("myName", to == null ? l.getTranslation("own name removed") : to);
                     }
index 1a552f063222a1a9bbb0bc4b26dc7de2dfca0698..a36e3583f1e748f53d599cc83810db07ef190a97 100644 (file)
 </tr>
 <? foreach($assurances) {?>
 <tr>
 </tr>
 <? foreach($assurances) {?>
 <tr>
+<? if($support) { ?>
+<td><a href="/support/user/<?=$linkId?>"><?=$id?></a></td>
+<? } else { ?>
 <td><?=$id?></td>
 <td><?=$id?></td>
+<? } ?>
 <td><?=$date?></td>
 <td><?=$verbVal?></td>
 <? if($myName) { ?>
 <td><?=$date?></td>
 <td><?=$verbVal?></td>
 <? if($myName) { ?>
index 08ea759759aa273e07f098643774eca4a3e15d94..b73cc6daa180f4e1fd77f92d6b24e8a213816a38 100644 (file)
@@ -32,9 +32,9 @@
             <? } ?>
             </td>
         </tr>
             <? } ?>
             </td>
         </tr>
-               <tr>
+        <tr>
             <td><?=_Verification Points?>:</td>
             <td><?=_Verification Points?>:</td>
-            <td><?=$assurancepoints?></td>
+            <td><?=$assurancepoints?> (<a href="./<?=$id?>/points"><?=_Show?></a>)</td>
         </tr>
         <tr>
             <td><?=_Experience Points?>:</td>
         </tr>
         <tr>
             <td><?=_Experience Points?>:</td>
index 69f5d7e6f9a3667eff71ffb508e29f1758042652..9d8a3e3bc0565651b5990faa0f125ed7b86ac7a0 100644 (file)
@@ -13,22 +13,45 @@ import org.cacert.gigi.util.AuthorizationContext;
 
 public class MyPoints extends Page {
 
 
 public class MyPoints extends Page {
 
+    public static final String SUPPORT_PATH = "/support/user/*/points";
+
     public static final String PATH = "/wot/mypoints";
 
     public static final String PATH = "/wot/mypoints";
 
-    private AssurancesDisplay myDisplay = new AssurancesDisplay("asArr", false);
+    private static final int intStart = SUPPORT_PATH.indexOf('*');
+
+    private boolean support;
 
 
-    private AssurancesDisplay toOtherDisplay = new AssurancesDisplay("otherAsArr", true);
+    private AssurancesDisplay myDisplay;
 
 
-    public MyPoints() {
-        super("My Points");
+    private AssurancesDisplay toOtherDisplay;
+
+    public MyPoints(boolean support) {
+        super(support ? "Support User Points" : "My Points");
+        this.support = support;
+        myDisplay = new AssurancesDisplay("asArr", false, support);
+        toOtherDisplay = new AssurancesDisplay("otherAsArr", true, support);
     }
 
     @Override
     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
     }
 
     @Override
     public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
+        User user;
+        if (support) {
+            String info = req.getPathInfo();
+            int id = Integer.parseInt(info.substring(intStart, info.length() - SUPPORT_PATH.length() + intStart + 1));
+            user = User.getById(id);
+            if (user == null) {
+                resp.sendError(404);
+                return;
+            }
+        } else {
+            user = getUser(req);
+        }
+
         HashMap<String, Object> vars = new HashMap<String, Object>();
         HashMap<String, Object> vars = new HashMap<String, Object>();
+        vars.put("support", support);
+        vars.put("username", user.getPreferredName().toString());
         vars.put("pointlist", myDisplay);
         vars.put("madelist", toOtherDisplay);
         vars.put("pointlist", myDisplay);
         vars.put("madelist", toOtherDisplay);
-        User user = getUser(req);
         vars.put("asArr", user.getReceivedAssurances());
         vars.put("otherAsArr", user.getMadeAssurances());
         vars.put("assP", user.getAssurancePoints());
         vars.put("asArr", user.getReceivedAssurances());
         vars.put("otherAsArr", user.getMadeAssurances());
         vars.put("assP", user.getAssurancePoints());
@@ -41,6 +64,14 @@ public class MyPoints extends Page {
 
     @Override
     public boolean isPermitted(AuthorizationContext ac) {
 
     @Override
     public boolean isPermitted(AuthorizationContext ac) {
-        return ac != null && ac.getTarget() instanceof User;
+        if (ac == null) {
+            return false;
+        }
+        if (support) {
+            return ac.canSupport();
+        } else {
+            return ac.getTarget() instanceof User;
+        }
     }
     }
+
 }
 }
index 1671f1ad111bcdce1dd00ab8c023c34e4008cd2f..aa681cf2d1b1524a6b66ca2a3f5a0cee5de8df6c 100644 (file)
@@ -17,7 +17,7 @@
     </tr>
 <? } ?>
 <table>
     </tr>
 <? } ?>
 <table>
-<h2><?=_Verification Points You Received?></h2>
+<h2><? if($support) { ?><?=_Verification Points Received by ${username}?><? } else { ?><?=_Verification Points You Received?><? } ?></h2>
 <?=$pointlist?>
 <?=$pointlist?>
-<h2><?=_Verification Points You Issued?></h2>
+<h2><? if($support) { ?><?=_Verification Points Issued by ${username}?><? } else { ?><?=_Verification Points You Issued?><? } ?></h2>
 <?=$madelist?>
 <?=$madelist?>