[Zope] testing for local roles

Brian Lloyd Brian@digicool.com
Fri, 14 Jul 2000 10:11:38 -0400


> Well, while we're on the subject of AUTHENTICATED_USER.has_role, I've
> just come upon an error that just popped up all of a sudden in an SQL
> query that was working fine before.  The problematic line is:
> 
> <dtml-if "AUTHENTICATED_USER.has_role('Manager',this())">
> 
> and the error I get when trying to test it is:
> 
> Error, exceptions.NameError: AUTHENTICATED_USER
>
> <snip>
> 
> Another query in the same folder uses the exact same if statement, and
> works fine.  I am running 2.2b4.  Can anyone suggest a solution?

Aaron - 

Are you passing AUTHENTICATED_USER as an argument to the 
query that is working (and not doing so on this one?) 
Remember that SQL methods don't automagically get the 
same namespace that DTML does - the only things it can 
use are attributes that are named in the arguments list
(this is to prevent names that are coincidentally the 
same in a REQUEST form or something from being inserted 
into queries).

One common way of doing what you want is to add REQUEST 
to the arguments list of the SQLMethod and use:

<dtml-with REQUEST>
<dtml-if "AUTHENTICATED_USER.has_role('Manager',this())">
select * from data
</dtml-if>
</dtml-with>


Brian Lloyd        brian@digicool.com
Software Engineer  540.371.6909              
Digital Creations  http://www.digicool.com