Velko Ivanov wrote:

Dominik Huber wrote:

Provide ILocation by those adapters, use the
'locatalbe' attribute of the adapter directive (-> location proxied) or set the permission explicitly to zope.Public.

Thanks for the reply

PsycopgAdapter inherits ZopeDatabaseAdapter, which provides ILocation via IContained. No <adapter> directives are used in the configuration file, zope.Public is the least acceptable workaround.

There is a confusion between zope adapter and database adapter. Database adapters are regularly implemented as local utility (DA utility). Therefore a database adapter does provide IContained. The DA utitlity has to be invoked in your application somehow and that invocation *might* be happen with a zope adapter.

If such an potential zope adapter does not provide Location (or locatable=True within its adapter directive) the local authentication cannot be invoked because its context cannot be evaluated (None locations are global).

Whitout knowing further details about DA's, SessionCredentialsPlugin, etc your problem smells like a global/local-muddle. Maybe you could use the 'ZopeBasicRealm' and the 'No Challange if Authenticated' credential plugin to narrow the bug source. I use this configuration with different authenticator plugins and local/global principals.


Zope3-dev mailing list

Reply via email to