[Zope] How to test for a user having a permission?

Tim Cook tim@freepm.org
Wed, 14 Mar 2001 16:04:28 -0600


> I know I can map methods to permissions and so have the Zope machinery
> take care of testing whether the user has permission to call a method,
> but say I want to decide whether to display an 'Edit' button on the
> page depending on whether the user has the appropriate permission for
> editing. How do I test for the user having this permission - is there
> some kind of hasPermission() method I can use? I could make an
> assumption about which roles have which permissions and call hasRole(),
> but that doesn't seem right to me* - I don't think my code should care
> about what roles the user has, only whether they have the required
> permission.

With:

<dtml-if
expr="AUTHENTICATED_USER.has_permission('Edit','PARENTS[0]')">
  <a href="<dtml-var absolute_url>/manage_main">Edit</a>
</dtml-if>

in a method called from a document, it works for me.

HTH,
-- 
Tim Cook, President - FreePM,Inc. 
http://www.FreePM.com Office: (901) 884-4126
ONLINE DEMO: http://www.freepm.org:8080/FreePM