[Zope] Q: filtering search results by checkPermission?

Noel Burton-Krahn noel@burton-krahn.com
Thu, 13 Jun 2002 09:15:16 -0700


Hi,

I'm trying to filter a search results list to remove documents which the
current user doesn't have permission to view.  I wrote a python script which
tries to do just that.  I call

    checkPermission('View', x.absolute_url)

for every element in a doFormSearch result list, but it doesn't quite work.
What should I use instead of "x.absolute_url" to find the object of a search
result?

--Noel


# list_viewable = filterCheckPermissions(list_search_results)
#
# usage:
#    <dtml-let
results="filterCheckPermissions(doFormSearch(REQUEST=REQUEST))">
#
#
from AccessControl import getSecurityManager
checkPermission = getSecurityManager().checkPermission;
return filter(lambda x: checkPermission('View', x.absolute_url), list)