I am currently redesigning a functionality where you can mark an arbitrary content object through a behavior as unavailable. An unavailable object would show up with a standard/custom text "I am available" or with a redirect to a configurable URL (configured through the behavior).
The current implementation assigns a marker interface for unavailable object (which is fine).
Marking a folder as unavailable make also all subcontent unavailable.
The question is how to hook into the traversal in order to intercept each component of a traversal for performing the check "are you marked as unavailable". __bobo_traverse__ is not an option because this functionality should work without touch any other code.
I have the following use case: Pseudo-Security with PIN for all Views via Behavior. The Editor can enable the PIN-Behavior, but he does not have to do it . A little Checkbox enable and generate a random PIN. The first part, the implementing of the behavior is not the Problem, but how can i override all Views in a general way to check the condition and redirect, only if needed, to a PIN Check-Form. Should i use a custom Event or a Browserlayer or is there an other mechanism? Any Ideas?
In a viewlet? I remember using the example on training.plone.org as a guideline for something similar.
Check if enabled in the index() method, and use update() to render the PIN form.