I figured it out.  My interceptor was returning null instead of
invocation.invoke()...n00b mistake. :)

In your example, you invoke a specific method "isUserAuthorized()".
What is the method named in your action?  Is it "getIsUserAuthorized"?
I have an action method "isAuthorized" and I have to invoke it e.g.,
<s:if test="%{authorized}">.  If I change 'authorized' to
'isAuthorized', then my else block is executed.


Beez
r 5347 

-----Original Message-----
From: Biesbrock, Kevin 
Sent: Tuesday, November 30, 2010 11:06 AM
To: 'Zoran Avtarovski'; 'Struts Users Mailing List'
Subject: RE: Link Display Logic

Thank you for the suggestion, Zoran! I guess I'm doing somewhat of a
combination of what you and Dave suggested.

I've been utilizing the Aware interfaces for my actions...I think it's
similar to what you're suggesting with your base action class, just a
different approach, if I understand correctly.  The difference is that
our UserInterceptor determines authorization level and sets the level on
the action via a UserAware interface with a setAuthorizationLevel
method.

Then I have a jsp fragment that checks if they have the required
authorization level.  That jsp fragment is being included similarly to
what I think Dave was suggesting, just using the standard s:action tag
instead of writing my own custom tag.

For some reason my s:action is being executed successfully, but it's not
including the jsp fragment in my main jsp.  I have the
executeResult="true" attribute set.  It worked for a minute and now it
seems to just neglect to include it.  I'm working on that right now.

Thank you again for your suggestions!  It definitely seems to be
pointing me in a good direction! :)

Sincerely,

Beez

-----Original Message-----
From: Zoran Avtarovski [mailto:zo...@sparecreative.com]
Sent: Monday, November 29, 2010 6:45 PM
To: Struts Users Mailing List; Biesbrock, Kevin
Subject: Re: Link Display Logic

What we have implemented is a set of public authorisation methods in our
base action which we call via ognl passing the actionId as the
parameter.
For example to test if a user should be shown the print report we have a
isUserAuthorised(Integer actionId) method which we use as follows:
<s:if test="%{isUserAuthorised(123)}">Your stuff in here</s:if>

I have to say that I think this is one of the best aspects of OGNL as
we're easily able to easily use server side authorisation with simple
ajax calls.

Z.

On 30/11/10 5:41 AM, "Biesbrock, Kevin" <biesbrock.ke...@aoins.com>
wrote:

>Hello users.  I'm Kevin, first time caller, long time listener (Mr.
>Obvious reference).
> 
>I have two reports and need to display a link for each if the following

>conditions are met:
>    1. The user is authorized to view the reports (they are secured), 
>and
>    2. The specific report currently exists
> 
>Both of these conditions are determined via predefined methods (they 
>are "black boxes" to me).
> 
>Following the MVC pattern, what is the best way to split up the display

>logic of this such that my links are displaying to the appropriate 
>users when they exist?
> 
>The links will display on the home page.  So I thought about 
>determining these factors in the home action and wrapping s:if tags 
>around links to the reports.  It seems simple enough, I was just 
>curious if there was a different and/or better approach.
>____
>Thank you for your time,
>Kevin - "Beez"





---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to