]> WPIA git - gigi.git/commitdiff
Clean: use "authorizationContexts"
authorFelix Dörre <felix@dogcraft.de>
Mon, 2 Nov 2015 09:26:13 +0000 (10:26 +0100)
committerFelix Dörre <felix@dogcraft.de>
Mon, 2 Nov 2015 09:26:13 +0000 (10:26 +0100)
17 files changed:
src/org/cacert/gigi/Gigi.java
src/org/cacert/gigi/PermissionCheckable.java
src/org/cacert/gigi/output/Menu.java
src/org/cacert/gigi/output/PageMenuItem.java
src/org/cacert/gigi/output/SimpleMenuItem.java
src/org/cacert/gigi/pages/LoginPage.java
src/org/cacert/gigi/pages/LogoutPage.java
src/org/cacert/gigi/pages/Page.java
src/org/cacert/gigi/pages/admin/TTPAdminPage.java
src/org/cacert/gigi/pages/admin/support/FindDomainPage.java
src/org/cacert/gigi/pages/admin/support/FindUserPage.java
src/org/cacert/gigi/pages/admin/support/SupportUserDetailsPage.java
src/org/cacert/gigi/pages/main/RegisterPage.java
src/org/cacert/gigi/pages/orga/CreateOrgPage.java
src/org/cacert/gigi/pages/orga/ViewOrgPage.java
src/org/cacert/gigi/pages/wot/AssurePage.java
src/org/cacert/gigi/util/AuthorizationContext.java

index 63ce7fe8d21a99de14fbdd300e24ef1491da8e2c..c5ee8cd3e6f9b46a2acf9f14e10f9528af156d85 100644 (file)
@@ -110,8 +110,8 @@ public class Gigi extends HttpServlet {
             getMenu("CAcert.org").addItem(new SimpleMenuItem("https://" + ServerConstants.getSecureHostNamePort() + "/login", "Certificate Login") {
 
                 @Override
-                public boolean isPermitted(User u) {
-                    return u == null;
+                public boolean isPermitted(AuthorizationContext ac) {
+                    return ac == null;
                 }
             });
             putPage("/", new MainPage("CAcert - Home"), null);
@@ -326,8 +326,7 @@ public class Gigi extends HttpServlet {
                 return;
             }
             AuthorizationContext currentAuthContext = LoginPage.getAuthorizationContext(req);
-            User currentPageUser = LoginPage.getUser(req);
-            if ( !p.isPermitted(currentPageUser)) {
+            if ( !p.isPermitted(currentAuthContext)) {
                 if (hs.getAttribute("loggedin") == null) {
                     String request = req.getPathInfo();
                     request = request.split("\\?")[0];
@@ -369,14 +368,15 @@ public class Gigi extends HttpServlet {
             };
             Language lang = Page.getLanguage(req);
 
-            vars.put(Menu.USER_VALUE, currentPageUser);
+            vars.put(Menu.AUTH_VALUE, currentAuthContext);
             vars.put("menu", rootMenu);
             vars.put("title", lang.getTranslation(p.getTitle()));
             vars.put("static", getStaticTemplateVar(isSecure));
             vars.put("year", Calendar.getInstance().get(Calendar.YEAR));
             vars.put("content", content);
-            if (currentPageUser != null) {
+            if (currentAuthContext != null) {
                 CertificateOwner target = currentAuthContext.getTarget();
+                User currentPageUser = LoginPage.getUser(req);
                 if (target != currentPageUser) {
                     vars.put("loggedInAs", ((Organisation) target).getName() + " (" + currentPageUser.getName().toString() + ")");
                 } else {
index 7dee6fd7c950deace3b11698137dcc6d5b4b1687..4b868f2a069498ba2126ee7133b02d4c6040291d 100644 (file)
@@ -1,10 +1,9 @@
 package org.cacert.gigi;
 
-import org.cacert.gigi.dbObjects.User;
-
+import org.cacert.gigi.util.AuthorizationContext;
 
 public interface PermissionCheckable {
 
-    public boolean isPermitted(User u);
+    public boolean isPermitted(AuthorizationContext u);
 
 }
index 9d275ffc48ac4dd990d004469a3f7819f1bb45b4..6c37617584a3f5012d413fdef2511a71c7354772 100644 (file)
@@ -4,12 +4,12 @@ import java.io.PrintWriter;
 import java.util.LinkedList;
 import java.util.Map;
 
-import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class Menu implements IMenuItem {
 
-    public static final String USER_VALUE = "user";
+    public static final String AUTH_VALUE = "ac";
 
     private String menuName;
 
@@ -24,7 +24,7 @@ public class Menu implements IMenuItem {
     @Override
     public void output(PrintWriter out, Language l, Map<String, Object> vars) {
         boolean visible = false;
-        User u = (User) vars.get(USER_VALUE);
+        AuthorizationContext u = (AuthorizationContext) vars.get(AUTH_VALUE);
         for (IMenuItem mi : content) {
             if (mi.isPermitted(u)) {
                 if ( !visible) {
@@ -71,7 +71,7 @@ public class Menu implements IMenuItem {
     }
 
     @Override
-    public boolean isPermitted(User u) {
+    public boolean isPermitted(AuthorizationContext ac) {
         return true;
     }
 }
index 8b7d41e64c616f386aada2953f7e45a98d2e539b..852ea4b02ae9e44204a27b2c296fbeb385e5b034 100644 (file)
@@ -1,7 +1,7 @@
 package org.cacert.gigi.output;
 
-import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.AuthorizationContext;
 import org.cacert.gigi.util.ServerConstants;
 
 public class PageMenuItem extends SimpleMenuItem {
@@ -14,7 +14,7 @@ public class PageMenuItem extends SimpleMenuItem {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return p.isPermitted(u);
+    public boolean isPermitted(AuthorizationContext ac) {
+        return p.isPermitted(ac);
     }
 }
index cccd3b11f8e21d625b98839a434324a76e2d687c..961a288fd62cc2ce1e18fd9d2afd646c3ab119bf 100644 (file)
@@ -3,8 +3,8 @@ package org.cacert.gigi.output;
 import java.io.PrintWriter;
 import java.util.Map;
 
-import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class SimpleMenuItem implements IMenuItem {
 
@@ -27,7 +27,7 @@ public class SimpleMenuItem implements IMenuItem {
     }
 
     @Override
-    public boolean isPermitted(User u) {
+    public boolean isPermitted(AuthorizationContext ac) {
         return true;
     }
 
index d25eacfb43bc0036aa4a8ae7c6fe9070a980b55f..3188b1370529d08214abe4cdab9bd8b261620d24 100644 (file)
@@ -182,7 +182,7 @@ public class LoginPage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return u == null;
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac == null;
     }
 }
index 3d82be788599963a09c48052ca14ae6a1aa6baad..1a854837a57e7c45a3b213c10949c1534d9bebee 100644 (file)
@@ -7,7 +7,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import org.cacert.gigi.Gigi;
-import org.cacert.gigi.dbObjects.User;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class LogoutPage extends Page {
 
@@ -31,8 +31,8 @@ public class LogoutPage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return u != null;
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null;
     }
 
 }
index f2bdbd7f7c370951ccfd02cfc9776ec3f6c86833..8d64d94f93cb884bfd7a94836c18debea283ee36 100644 (file)
@@ -14,6 +14,7 @@ import org.cacert.gigi.PermissionCheckable;
 import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Template;
+import org.cacert.gigi.util.AuthorizationContext;
 
 /**
  * This class encapsulates a sub page of Gigi. A template residing nearby this
@@ -137,8 +138,8 @@ public abstract class Page implements PermissionCheckable {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return !needsLogin() || u != null;
+    public boolean isPermitted(AuthorizationContext ac) {
+        return !needsLogin() || ac != null;
     }
 
 }
index 5dbc6409db536713c4651b29bc566a069e741f67..a6bd0d47308a1d0972b52357e5e7a9dbc9e070f4 100644 (file)
@@ -17,6 +17,7 @@ import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.output.template.SprintfCommand;
 import org.cacert.gigi.pages.Page;
 import org.cacert.gigi.pages.error.PageNotFound;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class TTPAdminPage extends Page {
 
@@ -87,7 +88,7 @@ public class TTPAdminPage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return u != null && u.isInGroup(Group.getByString("ttp-assurer"));
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && ac.isInGroup(Group.getByString("ttp-assurer"));
     }
 }
index fec8bc1b44997d529cd506947e955d2799f64c32..acff64631cac15042af139f4287cd646c1e88505 100644 (file)
@@ -1,9 +1,9 @@
 package org.cacert.gigi.pages.admin.support;
 
 import org.cacert.gigi.dbObjects.Group;
-import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.pages.OneFormPage;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class FindDomainPage extends OneFormPage {
 
@@ -19,10 +19,7 @@ public class FindDomainPage extends OneFormPage {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        if (u == null) {
-            return false;
-        }
-        return u.isInGroup(Group.SUPPORTER);
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && ac.isInGroup(Group.SUPPORTER);
     }
 }
index 6f4fc875bb95b2ccd0e5bee9ad0e70fba0bdd61c..ad112919eb2a7c34d23159073c47bfba4c00decb 100644 (file)
@@ -14,6 +14,7 @@ import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class FindUserPage extends Page {
 
@@ -65,11 +66,8 @@ public class FindUserPage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        if (u == null) {
-            return false;
-        }
-        return u.isInGroup(Group.SUPPORTER);
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && ac.isInGroup(Group.SUPPORTER);
     }
 
 }
index 924ba08b17c1c562808c1035518481160d8f296b..b1ec3abf7bf041af50bad7260444130903075850 100644 (file)
@@ -16,6 +16,7 @@ import org.cacert.gigi.localisation.Language;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class SupportUserDetailsPage extends Page {
 
@@ -88,10 +89,7 @@ public class SupportUserDetailsPage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        if (u == null) {
-            return false;
-        }
-        return u.isInGroup(Group.SUPPORTER);
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && ac.isInGroup(Group.SUPPORTER);
     }
 }
index 72adc23e63a93d0d3af1bb1e0c26d15c42b59ca1..78b1cc19faa311089970778a59d854f5c3a3b8e4 100644 (file)
@@ -8,9 +8,9 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
-import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class RegisterPage extends Page {
 
@@ -56,7 +56,7 @@ public class RegisterPage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return u == null;
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac == null;
     }
 }
index f1e8ea6a39274e5257e586bb0d50078fa7bf7d1f..4d6a38798ac34603ea74eebcc764f6ddbfded230 100644 (file)
@@ -8,9 +8,9 @@ import javax.servlet.http.HttpServletResponse;
 
 import org.cacert.gigi.GigiApiException;
 import org.cacert.gigi.dbObjects.Group;
-import org.cacert.gigi.dbObjects.User;
 import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class CreateOrgPage extends Page {
 
@@ -23,8 +23,8 @@ public class CreateOrgPage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return u != null && u.isInGroup(ORG_ASSURER);
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && ac.isInGroup(ORG_ASSURER);
     }
 
     @Override
index 3996095e774224e7c805fd24b464304b0aa4baba..b2b39f1ac89631218502cdd1083cbef1d754e586 100644 (file)
@@ -18,6 +18,7 @@ import org.cacert.gigi.output.template.IterableDataset;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.AuthorizationContext;
 
 public class ViewOrgPage extends Page {
 
@@ -32,8 +33,8 @@ public class ViewOrgPage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return u != null && (u.isInGroup(CreateOrgPage.ORG_ASSURER) || u.getOrganisations().size() != 0);
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && (ac.isInGroup(CreateOrgPage.ORG_ASSURER) || ac.getActor().getOrganisations().size() != 0);
     }
 
     @Override
index 924cc953966a1ce6c9e0f34329b4f84beb2dd17c..af00c0e8b7acb0319d4f2be12b8eaf68fba09be2 100644 (file)
@@ -19,6 +19,7 @@ import org.cacert.gigi.output.template.Form;
 import org.cacert.gigi.output.template.Template;
 import org.cacert.gigi.pages.LoginPage;
 import org.cacert.gigi.pages.Page;
+import org.cacert.gigi.util.AuthorizationContext;
 import org.cacert.gigi.util.Notary;
 
 public class AssurePage extends Page {
@@ -46,8 +47,8 @@ public class AssurePage extends Page {
     }
 
     @Override
-    public boolean isPermitted(User u) {
-        return u != null && u.canAssure();
+    public boolean isPermitted(AuthorizationContext ac) {
+        return ac != null && ac.getActor().canAssure();
     }
 
     private void outputForm(HttpServletRequest req, PrintWriter out, AssuranceForm form) {
index 4a329a9fd3f1812f92d69795244c7dea567c8b64..9d190f72d89f785e2bcd4e40044f9c65089b7eb5 100644 (file)
@@ -23,7 +23,14 @@ public class AuthorizationContext {
         return actor;
     }
 
-    public boolean hasRight(Group g) {
+    public boolean isInGroup(Group g) {
         return actor.isInGroup(g);
     }
+
+    public User getActor(AuthorizationContext ac) {
+        if (ac == null) {
+            return null;
+        }
+        return ac.getActor();
+    }
 }