[Zope] Displaying something based on role doesn't work properly

Alexander Limi alexander@limi.net
Tue, 13 Feb 2001 14:12:07 +0100


> Alexander Limi writes:
>  > All documents work fine, except when I get an error message - then
the
>  > extra menu disappears, like the user is no longer authenticated,
>  > although when I follow a link further into the site, I suddenly get
the
>  > menu back.

> You know that cookies can be restricted to be send to just
> part of the site?

> Put a DTML method "showRequest" with the content
>
>     <dtml-var standard_html_head>
>     <dtml-var REQUEST>
>     <dtml-var standard_html_footer>
>
> into your root folder (such that it is acquired everywhere).
> Test with "<url>/showRequest" whether the cookie is sent to
> "<url>".


As I pointed out, it works fine except for standard_error_message.

It seems like AUTHENTICATED_USER.has_role(['Member','Artist','Manager'])
won't work on standard_error_messages. If I do a

<dtml-var "AUTHENTICATED_USER.has_role(['Member','Artist','Manager'])">

in the header, it prints "1" on all the documents, except for
standard_error_message, where "0" is printed.

The cookie appears in normal documents, so I presume there is some kind
of error in my standard_html_header. It looks like this:


(Norwegian text, but that's not the important part anyway :)

<dtml-var standard_html_header>

<h2>Ooops.</h2>
<p>
 Dette er en feilmelding. Av den snille og litt myke typen.
</p>


<dtml-if "error_type=='NotFound'">
  <p>Dokumentet du forsøkte å finne eksisterer ikke. Kanskje du har
stavet noe feil?</p>
  <dtml-comment><p>Prøv gjerne vår søkemotor for å finne det du leter
etter.</p></dtml-comment>


<dtml-else>

<dtml-var table_start>
<tr><th colspan=2>Feilmeldings-dippedutten vår sier</th></tr>
<tr><td><strong>Error Type</strong></td>
    <td><dtml-var error_type missing="&nbsp;"></td>
</tr>
<tr class="even"><td><strong>Error Message</strong></td>
    <td><dtml-var error_message missing="&nbsp;"></td>
</tr>


<tr><td><strong>Error Value</strong></td>
    <td><dtml-var error_value missing="&nbsp;"></td>
</tr>
</table>

<p>
 Hvis denne kom opp når du gjorde noe
 viktig, og det som står over ikke forteller deg noe om hva som er galt,
send oss gjerne en mail (<a
href="&dtml-our_email;">&dtml-our_email;</a>) med en beskrivelse av hva
du forsøkte å gjøre når denne feilen oppstod. Vi skal forsøke å hjelpe
deg så fort som mulig.


</p>

<p>
 Hvis du vil være <strong>ekstra</strong> snill, kan du lagre denne
siden som
 en HTML-fil ("Fil -> Lagre som" i menyen), og legge den med som et
vedlegg. Da blir det enklere for oss å
 finne feilen. Vi har nemlig gjemt hemmelige besvergelser i denne siden
som
 gjør oss i stand til å finne ut hva som gikk galt.
</p>

<!-- Her er errormessage, samt traceback. For de av dere som lurer, er
det
     denne vi bruker for å finne feilen som oppstod.

_________________________________extras_________________________________
________


Error Type: <dtml-var error_type>

  <dtml-if "error_type in ('KeyError','NameError')">
    This resource may be trying to reference a nonexistent object or
variable <dtml-var error_value>.
  </dtml-if>


_____________________________REQUEST-objektet___________________________
_______


<dtml-var REQUEST>

________________________________end_extras______________________________
________

-->


</dtml-if>


<dtml-var standard_html_footer>