[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