chrisf wrote:
Oliver Bleutgen wrote:
Anyway, as Chris stated, you just have to catch the unauthorized exception:
try: if getattr(item[1],'index_html'):pub.append(item[1].absolute_url()) except: pass (or do something)
You can further qualify which exception you want to capture, I don't know offhand if ... except Unauthorized: pass
works.
Not from within a Zope ZClass product. I get the dumb Authorization window regaurdless. If I fail to input the correct info then I get the exception. Try it :)
Thanks for the help,
Please stay on the list, I've not given up ;-). Since the try/except clause didn't work, it's quite clear that getattr isn't raising the exception. Maybe it happens inside ZopeFind. ZopeFind also has the possibility to limit search results based on permission (see the "advanced" tab under Find in the ZMI. IIRC, you can use something like ZopeFind(..., obj_permission=[list of permissions], obj_roles=[list of roles]), where you define which roles should have which permission on the object. Another possiblity is to use obj_expr="something", where something tests if the actual user is allowed to view the object. cheers, oliver