Charlie Clark wrote:
> Am 07.04.2010, 13:47 Uhr, schrieb Jens Vagelpohl<j...@dataflake.org>:
>> I think I would change the cookie crumbler to expect both: Either a page
>> with an ID that the cookie crumbler can traverse to (which is what it
>> does right now), or an ID for a view that you could traverse to using
>> the "@@" notation.
> Sort of:
> try:
>       page.getId()
> except AttributeError:
>       page.restrictedTraverse() # or getMultiAdapter((context, request), 
> name=)
> I'm a bit hazy on traversal. Actually I'm a bit useless on it!

getUnauthorizedURL is already using restrictedTraverse. This only fails 
because it starts from self instead of the parent (=portal root) and the 
login form is usually not registered for the cookie crumbler.

And it tries to call absolute_url(). Views don't have that method.

An other approach would be to look up the URLs in the Actions tool. The 
login URL is already specified in the 'user/login' Action, an invisible 
logged_out Action could be added. Long time ago the cookie crumbler had 
a stand alone version, so there are no dependencies on other tools. But 
now I would prefer to avoid redundant settings.


Zope-CMF maillist  -  Zope-CMF@zope.org

See https://bugs.launchpad.net/zope-cmf/ for bug reports and feature requests

Reply via email to