[Yanel-dev] Re: [Yanel-commits] rev
45010 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu
Michael Wechner
michael.wechner at wyona.com
Wed Oct 14 11:58:52 CEST 2009
Guillaume Déflache schrieb:
> michi at wyona.com schrieb:
>> Author: michi
>> Date: 2009-10-14 10:33:33 +0200 (Wed, 14 Oct 2009)
>> New Revision: 45010
>>
>> Modified:
>>
>> public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/Menu.java
>>
>> Log:
>> check policies re user and group management in order to
>> disable/enable links
>>
>> 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 08:32:53 UTC (rev 45009)
>> +++
>> public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/Menu.java
>> 2009-10-14 08:33:33 UTC (rev 45010)
>> @@ -50,8 +50,20 @@
>> sb.append("<li><a href=\"?yanel.policy=update\">Edit Access
>> Policy</a></li>");
>> sb.append("</ul>");
>> sb.append("</li>");
>> - sb.append("<li><a href=\"" + backToRealm + reservedPrefix +
>> "/admin/list-users.html\">User Management</a></li>");
>> - sb.append("<li><a href=\"" + backToRealm + reservedPrefix +
>> "/admin/list-groups.html\">Group Management</a></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"))) {
>> + 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"))) {
>> + sb.append("<li><a href=\"" + backToRealm +
>> reservedPrefix + "/admin/list-groups.html\">Group Management</a></li>");
>> + } else {
>> + sb.append("<li>Group Management</li>");
>> + }
>> +
>> sb.append("<li><a href=\"?yanel.toolbar=off\">Turn off
>> toolbar</a></li>");
>> Identity identity = getIdentity(request, map);
>> if (identity != null) {
>>
>
> Maybe some helpers could, well, help there, like:
>
> protected final boolean mayBeViewed(String URI) {
> PolicyManager pm = resource.getRealm().getPolicyManager();
> return pm.authorize(URI, resource.getEnvironment().getIdentity(),
> new org.wyona.security.core.api.Usecase("view")));
> }
>
> That could be defined in Yanel's Menu base class.
done, slightly different though. Please note this can rise
performance/scalability issues and I think before we continue
using this wildly we first need incremental Menus via Ajax
>
>
> Also we should at least try to start a HTML writer library for menu
> entries (addMenu, addMenuEntry, addSeparator, etc.), as you suggested
> in
> http://lists.wyona.org/pipermail/yanel-development/2009-April/003543.html
> (And If we are careful and first use private methods for prototyping
> it, we can always ditch it later!)
definitely if we find some spare time or reset our priorities ;-)
Thanks
Michi
>
>
> WDYT?
More information about the Yanel-development
mailing list