[Zope] using getProperty and catching Unauthorized
Casey Duncan
casey@zope.com
Fri, 25 Oct 2002 10:02:15 -0400
I think the following should do what you want:
for foo in bar.objectvalues()
try:
mo = foo.getProperty('menu_order', None)
except 'Unauthorized':
continue
..do stuff..
hth,
-Casey
On Thu, 24 Oct 2002 21:09:07 -0500
"John K. Hohm" <jhohm@acm.org> wrote:
> Using Zope 2.6.0, I have a script that returns a list of items to be shown in a
> navigation menu. I want to show only items where both a menu_order property
> exists and the user has permission to view the object (which will not always be
> controlled by 'View'). I can't use foo.getProperty('menu_order', None) because
> it will raise Unauthorized for objects the user has no permissions on. I can't
> use getattr(foo, 'menu_order', None) because foo will acquire menu_order, and I
> can't pass foo.aq_base or Acquisition.aq_base(foo) to getattr because aq_base
> will raise Unauthorized. If I could catch Unauthorized without also catching
> more serious errors, I could use getProperty, but I don't know how to do that.