Hi, System: Zope 2.3.2b2, CMF 1.0, LoginManager 0.8.8b1, Zope/Python Newbie :) I wish to customize the following code in standard_html_header (from the default CMF skins): <dtml-if "_.hasattr(this(),'isEffective') and not isEffective( ZopeTime() )"> <dtml-unless "portal_membership.checkPermission('Request review',this()) or portal_membership.checkPermission('Review portal content',this())"> <dtml-var "RESPONSE.unauthorized()"> </dtml-unless> </dtml-if> Instead of an HTTP-AUTH dialog (as it now stands), I would like to put out a LoginManager-style "forbiddenPage". The following will not work, because the "something follows here" (plus the standard_html_footer) section will still get output: standard_html_header: if ...: // same check as above <dtml-var forbiddenPage> else: ... // normal stuff some_page: <dtml-var standard_html_header> ... something follows here ... <dtml-var standard_html_footer> So, what I need to do is to move the "isEffective" check into the LoginManager or somewhere else upstream in the authentication process. Hopefully, the same place where LoginManager checks to see if it should call "forbiddenPage" based on the user's roles versus object's required roles. Any suggestions on how to code it? After looking through the code, I realize my problem is not knowing how to access the requested object (i.e., equivalent to the "this()" above) as well as making sure that the portal_membership.checkPermission doesn't somehow end up recursing infinitely. I figure it can be done somehow using PARENTS inside the validate() function in LoginManager.py, but I need help. Thanks! Sreeram. -- ---------------------------------- Observation is the essence of art. ----------------------------------