[Yanel-commits] rev 45013 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu

michi at wyona.com michi at wyona.com
Wed Oct 14 11:26:37 CEST 2009


Author: michi
Date: 2009-10-14 11:26:37 +0200 (Wed, 14 Oct 2009)
New Revision: 45013

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/Menu.java
Log:
utility class added

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/Menu.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/Menu.java	2009-10-14 09:25:15 UTC (rev 45012)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/Menu.java	2009-10-14 09:26:37 UTC (rev 45013)
@@ -51,14 +51,13 @@
         sb.append("</ul>");
         sb.append("</li>");
 
-        org.wyona.security.core.api.PolicyManager pm = resource.getRealm().getPolicyManager();
-        if (pm.authorize("/" + reservedPrefix + "/admin/list-users.html", resource.getEnvironment().getIdentity(), new org.wyona.security.core.api.Usecase("view"))) {
+        if (isAuthorized("/" + reservedPrefix + "/admin/list-users.html", resource)) {
             sb.append("<li><a href=\"" + backToRealm + reservedPrefix + "/admin/list-users.html\">User Management</a></li>");
         } else {
             sb.append("<li>User Management</li>");
         }
 
-        if (pm.authorize("/" + reservedPrefix + "/admin/list-groups.html", resource.getEnvironment().getIdentity(), new org.wyona.security.core.api.Usecase("view"))) {
+        if (isAuthorized("/" + reservedPrefix + "/admin/list-groups.html", resource)) {
             sb.append("<li><a href=\"" + backToRealm + reservedPrefix + "/admin/list-groups.html\">Group Management</a></li>");
         } else {
             sb.append("<li>Group Management</li>");
@@ -111,4 +110,13 @@
         }
         return null;
     }
+
+    /**
+     * Check if user is authorized to access resource (IMPORTANT NOTE: Using isAuthorized() can lead to performance/scalabilty issues)
+     * @param path Resource path
+     */
+    private boolean isAuthorized(String path, Resource resource) throws Exception {
+        org.wyona.security.core.api.PolicyManager pm = resource.getRealm().getPolicyManager();
+        return pm.authorize(path, resource.getEnvironment().getIdentity(), new org.wyona.security.core.api.Usecase("view"));
+    }
 }



More information about the Yanel-commits mailing list