]> WPIA git - gigi.git/blobdiff - src/club/wpia/gigi/pages/orga/MyOrganisationsForm.java
add: ensure that for OrgAdmin action there is a valid OrgAdmin Challenge
[gigi.git] / src / club / wpia / gigi / pages / orga / MyOrganisationsForm.java
index 8858c5c0af631946f59850aabd348a8ed2e7be3d..d5a6710819adeb29aae7e3c2987c7c88bc52c926 100644 (file)
@@ -31,8 +31,9 @@ public class MyOrganisationsForm extends Form {
 
     @Override
     public SubmissionResult submit(HttpServletRequest req) throws GigiApiException {
+        AuthorizationContext sessionAc = (AuthorizationContext) req.getSession().getAttribute(Gigi.AUTH_CONTEXT);
         if (req.getParameter("org-leave") != null) {
-            req.getSession().setAttribute(Gigi.AUTH_CONTEXT, new AuthorizationContext(target.getActor(), target.getActor()));
+            req.getSession().setAttribute(Gigi.AUTH_CONTEXT, new AuthorizationContext(target.getActor(), target.getActor(), sessionAc.isStronglyAuthenticated()));
             return new RedirectResult(SwitchOrganisation.PATH);
         }
         Enumeration<String> i = req.getParameterNames();
@@ -51,7 +52,7 @@ public class MyOrganisationsForm extends Form {
         for (Organisation org : target.getActor().getOrganisations()) {
             if (org.getId() == orgId) {
 
-                req.getSession().setAttribute(Gigi.AUTH_CONTEXT, new AuthorizationContext(org, target.getActor()));
+                req.getSession().setAttribute(Gigi.AUTH_CONTEXT, new AuthorizationContext(org, target.getActor(), sessionAc.isStronglyAuthenticated()));
                 return new RedirectResult(SwitchOrganisation.PATH);
             }
         }
@@ -61,6 +62,7 @@ public class MyOrganisationsForm extends Form {
     @Override
     protected void outputContent(PrintWriter out, Language l, Map<String, Object> vars) {
         final List<Organisation> o = target.getActor().getOrganisations();
+        vars.put("certlogin", target.isStronglyAuthenticated() && target.getActor().hasValidOrgAdminChallenge());
         if (target.getTarget() != target.getActor()) {
             vars.put("personal", target.getTarget() != target.getActor());
         }