Hi Chris!

Chris Withers wrote:
yuppie wrote:

...will net you a TypeError explaining that getActionInfo takes a argument that isn't supplied. Looking at the docs, an action_chain, but I have no idea what one of them is...

'action_chain' is a sequence of 'action paths'.

Does supplying a chain return the first action info that matches or the first or all of the ones that match?

listActionInfos() returns a tuple of ActionInfo objects, getActionInfo() the first ActionInfo that passes the checks. Note that ActionInfo is a dict, not the persistent Action object you need.

'action paths' are the unique identifiers of Actions. 'view' doesn't identify an Action because there might be 'object/view' and 'foo/view'. 'action paths' have the format <category>/<id>.

Ah, okay, so what does getActionById('view'), in its deprecated form, actually do?

It returns the first 'view' Action it finds.

My current guess is to what SHOULD be used is:


Traceback (most recent call last):
  File "<stdin>", line 1, in ?
"Products/CMFCore/ActionProviderBase.py", line 128, in getActionInfo
    raise AccessControl_Unauthorized('You are not allowed to access any '
AccessControl.unauthorized.Unauthorized: You are not allowed to access any
of the specified Actions.

...but as you can see, that's not too successful :-(
The above was from a 'zopectl debug' prompt, what am I doing wrong?

Not quite sure, but I guess you have problems to get a useful expression context.

Once again:

getActionObject(action_path) is the method you are looking for.

ti.getActionObject('object/view') should work for you.



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

See http://collector.zope.org/CMF for bug reports and feature requests

Reply via email to