Wonderfull !!!!
Looking forward to having it !!! ;-)
This will let me also define a more granular permissions to simplify the
interface for not-so-skilled users.

-Bruno

2008/6/4 Adrian Crum <[EMAIL PROTECTED]>:

> In the screen widgets, you can check permissions with the
> <if-has-permission> or <if-service-permission> elements. That's fine if you
> only need to check a single permission to control access to the entire
> screen.
>
> Things get complicated when a screen's elements are controlled by more than
> one permission. Let's say you have a typical Edit Item screen. The screen
> should be viewable only to users who have the VIEW permission. Users who
> have the UPDATE permission can edit the item. Users who have the CREATE
> permission see a "New Item" button. Users who have DELETE permission see a
> "Delete Item" button. Users who have the ADMIN permission have unrestricted
> access to the screen. Wow. Five permission elements (and five service calls)
> are needed to control one screen.
>
>
> Here's my idea: have a permission service that returns ALL of the user's
> permissions in a Map. You call the service with the permission to check -
> "ACCOUNTING" for example. The service returns a Map containing all of the
> user's ACCOUNTING permissions stored as Boolean objects. Let's say the
> returned Map is called permissionsMap and the user has ACCOUNTING_VIEW and
> ACCOUNTING_UPDATE permissions, then the Map would contain these elements:
>
> CREATE=false
> UPDATE=true
> DELETE=false
> VIEW=true
> ADMIN=false
>
> If the service call is put in the screen's <actions> element, then the Map
> elements could be used to control the display of screen widget sections,
> menu items, and form fields.
>
> Freemarker code would be simpler too:
>
> <#if permissionsMap.CREATE>
>  <!-- Render a Create New button -->
> </#if>
> <#if permissionsMap.DELETE>
>  <!-- Render a Delete button -->
> </#if>
>
> What do you think?
>
> -Adrian
>

Reply via email to