Hi,

by the way - if you need to supply more than one parameter, there is
even the possibility to use a double-indexed syntax, as in:

#{securityBean['currentRegion']['manager']}

regards,

Martin

On 8/16/06, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
Well, those are good points, but your concerns are with the
limitations of the default EL rather than a need for a component.

You can work around these limitations using the
hashmap-as-function-parameters trick, or by using a more advanced EL
(like the Facelets EL which supports user-defined functions).

#{securityBean.isManager or securityBean.isAdmin}

could become

#{securityBean.ifAnyGranted['manager'] or securityBean.ifAnyGranted['admin']}"
or
#{ifGranted(securityBean, 'manager') or ifGranted(securityBean, 'admin')}"

You could even add an extra property-resolver so that these are
resolved by an extension of EL.

#{security:granted:manager or security:granted:admin}"

I think trying to use a component to solve these problems is too
limiting.   The place to deal with this is at the EL level.

> what if there are other conditions that effect the rendered property of the 
panel
> #{securityBean.isManager or securityBean.isAdmin or pageBean.isLoggedIn}

That's going to be true no matter what you do.   If you feel like
these need to be separated, then separate them out:

<h:panelGroup rendered="#{pageBean.isLoggedIn}">
    <h:panelGroup rendered="#{securityBean.isManager or securityBean.isAdmin}">


On 8/16/06, Cagatay Civici <[EMAIL PROTECTED]> wrote:
> Hi Mike,
>
>
> > <h:panelGroup rendered="#{securityBean.isManager or securityBean.isAdmin
> }">
> >
> >    //components to be secured goes here
> > </h:panelGroup >
> >
>
> Yes that would do the same job but my point is the user must create the
> securityBean class to accomplish this.
>
> Also securityBean changes when a new role is added. Imagining the possible
> amount of roles, the maintanence of the bean might cause problems when
> things get more complex.
>
> My other concern is what if there are other conditions that effect the
> rendered property of the panel. Then that should also be added to the
> security concern like;
>
> #{securityBean.isManager or securityBean.isAdmin or pageBean.isLoggedIn}
>
> Anyway, I'm just thinking loud :)
>
> Cagatay
>
>
> On 8/16/06, Mike Kienenberger <[EMAIL PROTECTED]> wrote:
> > What's wrong with using this?
> >
> > <h:panelGroup rendered="#{securityBean.isManager or
> securityBean.isAdmin}">
> >     //components to be secured goes here
> > </h:panelGroup >
> >
> > Seems a lot more flexible.
> >
> > On 8/16/06, Cagatay Civici < [EMAIL PROTECTED]> wrote:
> > > Hi,
> > >
> > > What do you guys think about a security component like this;
> > >
> > > <s:secure ifAnyGranted="manager, admin">
> > >     //components to be secured goes here
> > > </s:secure>
> > >
> > > Also have attributes like ifNotGranted, ifAnyGranted disable and etc.
> > >
> > > Do you think this should be useful?
> > >
> > > Regards,
> > >
> > > Cagatay
> > >
> >
>
>



--

http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Reply via email to