Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

Tools to force catalog queries to obey the current navigation root

Project description

Introduction

This package adds a patch to Plone to ensure that call catalog queries are ‘rooted’ to the current navigation root (as defined by the INavigationRoot interface). When installed, all catalog queries will have an implicit path parameter that limits search results to within the current navigation root, unless a path or UID parameter is explicitly provided. This avoids “leakage” of search results, portlet listings and the like. If a UID parameter is present, known content can be explicitly searched.

In this context, the navigation root must be:

  • A folderish object
  • That provides the INavigationRoot marker interface
  • And is a “component site” in the Zope 3 Component Architecture sense

The ‘collective.lineage’ product provides a user friendly way to create such types.

The navigation root will be kept as a thread local variable, in the same way that the component site is accessible via the global getSite() function. To get hold of the current traversed-over navigation root, you can use:

from collective.rooter import getNavigationRoot

current_root = getNavigationRoot()

The root may be None if no INavigationRoot has been traversed over.

Changelog

1.0 (2015-07-15)

  • If UID is given in the catalog search keywords, don’t apply the INavigationRoot path. This allows for explicit queries for known objects in other areas of the portal. Obsoletes pull-request #1. [thet]
  • PEP 8. [thet]

1.0b1 (2009-03-29)

  • Initial release. [optilude]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
collective.rooter-1.0.tar.gz (10.2 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page