[Zope-CMF] GenericSetup and PluggableAuthService

Wichert Akkerman wichert at wiggy.net
Wed Dec 30 10:26:44 EST 2009


On 2009-12-30 16:19, Jens Vagelpohl wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Wichert Akkerman wrote:
>> On 2009-12-30 15:35, Jens Vagelpohl wrote:
>>> The reason I thought this list of steps may (should?) change is that for
>>> example the PluggableAuthService profiles (both of which are BASE
>>> profiles) explicitly define what steps they provide with an
>>> import_steps.xml and export_steps.xml file. My assumption was that if
>>> you have one of the PAS profiles set as the baseline profile, and then
>>> select "Current base profile" on the Import tab, then the list of steps
>>> would reflect what the PAS profile import_steps.xml contains.
>>
>> I am wondering if the CMFCore import/export steps are registered for
>> Interface instead of ISiteRoot? You should only see steps that are
>> registered for the current context, and since a PAS user folder is not
>> an ISiteRoot the CMF import and export steps should not show up or be run.
>
> Looking at the code it appears steps (import and export) are not
> registered for interfaces. Only profiles are.

Indeed, I remembered that incorrectly. Perhaps that would be a useful 
extension at some point.

> However, even that
> registration by interface for profiles isn't considered in the ZMI in
> the base profile or extension profile select lists that show up on the
> Profiles and Import ZMI tabs.

That's probably a bug that should be fixed. Is there a ticket for that 
in launchpad?

> I have now gotten things to work by going through all import handlers in
> CMFCore and making sure they don't do anything if their handled content
> does not exist. Some already failed gracefully, others didn't. Looks
> like a simple oversight and lack of usage outside of the CMF.

Great!

> Another item that does not work is the Snapshot tab and the export of
> all steps when inside the PluggableAuthService instance. The failure
> looks like this:
>
> Traceback (innermost last):
>    Module ZPublisher.Publish, line 127, in publish
>    Module ZPublisher.mapply, line 77, in mapply
>    Module ZPublisher.Publish, line 47, in call_object
>    Module Products.GenericSetup.tool, line 586, in manage_exportAllSteps
>    Module Products.GenericSetup.tool, line 351, in runAllExportSteps
>    Module Products.GenericSetup.tool, line 1022, in _doRunExportSteps
>    Module Products.GenericSetup.components, line 530, in
> exportComponentRegistry
>    Module Products.GenericSetup.utils, line 495, in _exportBody
>    Module Products.GenericSetup.components, line 63, in _exportNode
>    Module Products.GenericSetup.components, line 373, in _extractAdapters
>    Module Products.GenericSetup.utils, line 72, in _getDottedName
> ValueError: Cannot compute dotted name:<zope.component.zcml.ProxyView
> object at 0x10471b550>
>
> In the debugger I see that the object in question is a absolute_url
> adapter residing in the base component registry in the site root. IMHO
> the components exporter should not look at the base registry at all,
> only a local registry if one exists in the folder the tool sits in. Correct?

I'ld say so, yes.

Wichert.

-- 
Wichert Akkerman <wichert at wiggy.net>   It is simple to make things.
http://www.wiggy.net/                  It is hard to make things simple.


More information about the Zope-CMF mailing list